我得到,使用for ... in循环将返回一个对象的所有属性,包括它的原型链,并使用.keys()会给我一个非继承数组(基本上为... in与hasOwnProperty结合),但为什么不在for循环中包含从Object引入的东西?也就是说为什么不包含..在Object中包含toString函数?谢谢!在JavaScript中,为什么不返回Object.prototype的内容?
-1
A
回答
2
对象的属性由其键,值定义,也可以是可配置的,可枚举的,可写的。一个非枚举属性不会在循环中显示。
当这样
var myObject = {};
myObject["a"] = 3;
创建一个对象的属性,是默认配置,枚举和可写的。它将显示在循环中。可以使用Object.defineProperty
创建不可枚举的属性。您可以检查一个属性可以枚举与.propertyIsEnumerable
:
myObject.propertyIsEnumerable("a"); // --> true
Object.propertyIsEnumerable("toString"); // --> false
+0
这使得完美的感觉。我没有意识到Object的属性被定义为不可枚举。谢谢! – CADBOT
相关问题
- 1. 为什么Object.prototype和Object.getOwnPropertyNames(Object.prototype)返回不同的东西?
- 2. 为什么htmlElement只在javascript函数中返回时返回元素的内容?
- 3. 为什么fs.readFileSync不会在承诺内返回任何内容?
- 4. 为什么Lucene.NET 3.0.3中的BooleanQuery不返回任何内容?
- 5. Object.prototype中在JavaScript
- 6. 什么是“document.writeln(Object.prototype);”在JavaScript打印?
- 7. 为什么reduceRight在Javascript中返回NaN?
- 8. 为什么{} + []在Javascript中返回0?
- 9. 为什么instanceof在JavaScript中返回false?
- 10. 为什么在JavaScript中返回-1
- 11. NullReferenceException不受管理。 “表”不返回任何内容。为什么?
- 12. 为什么不是Object.prototype ===到myNewObj.prototype?
- 13. 为什么我的程序不会返回任何内容?
- 14. 为什么我的Model.find不返回任何内容?
- 15. 为什么我的XPath不返回任何内容?
- 16. TinyMCE仅在点击后返回更改的内容,为什么?
- 17. 为什么Entity Framewok方法“.AsEnumerable()”不返回任何内容?
- 18. 正则表达式不返回任何内容。为什么?
- 19. 为什么mystring.split(“”).append(“foo”)不返回任何内容?
- 20. Ajax请求不返回任何内容。为什么?
- 21. 为什么此搜索查询不会返回任何内容?
- 22. 为什么lucene查询不会返回任何内容?
- 23. 为什么“return Nothing”不返回任何内容?
- 24. 为什么GetPortNames方法不会返回任何内容?
- 25. 为什么“graph.facebook.com/:page_id/insights”不能返回任何内容?
- 26. 这不会返回任何内容。为什么?
- 27. 为什么editext getText不会返回任何内容?
- 28. 为什么`{} + []`在Javascript中返回与`a = {} + []`不同的结果?
- 29. 为什么匹配[2]在重写规则中不返回任何内容
- 30. 为什么它在包含内容时返回空数组?
的了... in语句遍历的**枚举的属性**的对象,以任意顺序 - HTTPS://developer.mozilla。 org/en-US/docs/Web/JavaScript/Reference/Statements/for ... in – elclanrs
'for..in'循环只遍历[定义为'enumerable']的属性(https://developer.mozilla .ORG/EN-US /文档/网络/的JavaScript /参考/ Global_Objects /对象/ defineProperty)。您可以使用['Object.getOwnPropertyDescriptor(Object.prototype,'toString').enumerable']检查该设置(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor)。 –