为什么我的函数没有列出数组的所有属性但是在ob上?

Lea*_*ath 0 javascript

这是代码.我的函数不对该对象起作用,Array但对我ob用对象文字定义的对象起作用.

function all_properties(object) {
	var value = "[";
	for (var prop in object) {
		
			value += '"' + prop + '"' + ","
	}
	value = value.slice(0,-1);
	value += "]";
	return value;
}

var ob = {first: 1, second: function () {}, third: function () {}}
console.log(all_properties(ob))
console.log(all_properties(Array))
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

与大多数内置对象一样,Array构造函数(不是数组)的属性被标记为不可枚举,因此for in不会看到它们.

使用Object.getOwnPropertyDescriptors()看到所有属性.