在JavaScript中,为什么不返回Object.prototype的内容?

我得到,使用for ... in循环将返回一个对象的所有属性,包括它的原型链,并使用.keys()会给我一个非继承数组(基本上是...) hasOwnProperty),但为什么for ... in循环没有包含从Object引入的东西? 也就是说为什么不包含..在Object中包含toString函数? 谢谢!


对象的属性由其键,值定义,以及它是否可配置,可枚举,可写。 一个非枚举属性不会在循环中显示。

当这样创建一个对象属性时

var myObject = {};
myObject["a"] = 3;

它默认是可配置的,可枚举和可写的。 它将显示在循环中。 可以使用Object.defineProperty创建不可枚举的属性。 您可以使用.propertyIsEnumerable检查属性是否可枚举:

myObject.propertyIsEnumerable("a"); // --> true
Object.propertyIsEnumerable("toString"); // --> false
链接地址: http://www.djcxy.com/p/27247.html

上一篇: In JavaScript, Why doesn't for in return the contents of Object.prototype?

下一篇: Augmenting Object.prototype breaks Dojo