var properties = Object.getOwnPropertyNames(Array);
console.log(properties);

为什么此代码也会列出Array.prototype
对象的属性?根据我的理解,它应该列出直接在Array
对象上找到的这些属性:
Array.length
Array.constructor
Array.prototype
Array.isArray
Array.of
Array.observe
Array.from
Array.unobserve
答案 0 :(得分:1)
它运作正常。
Object.getOwnPropertyNames()返回一个数组,其元素是对应于直接在obj上找到的可枚举和不可枚举属性的字符串。
<强> MDN 强>
var propertiesOfArray = Object.getOwnPropertyNames(Array);
console.log(propertiesOfArray);
var propertiesOfArrayPrototype = Object.getOwnPropertyNames(Array.prototype);
console.log(propertiesOfArrayPrototype);
如果 Array.prototype 的属性符合您的要求,请不要使用数组,请使用 Array.prototype 。见更新。还有accepted answer here。
答案 1 :(得分:1)
您必须使用Firefox。它确实实现了Array
构造函数的非标准扩展,其中Array
本身就是generics function are available as static methods。它们是自己的属性,与Array.prototype
上的属性名称相同,但值不同。它们不存在于其他浏览器和won't be in future Firefoxes中。