为什么toString和hasOwnProperty(等)不会出现在JavaScript中的for-in循环中?

前端之家收集整理的这篇文章主要介绍了为什么toString和hasOwnProperty(等)不会出现在JavaScript中的for-in循环中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在和另一个开发人员讨论hasOwnProperty以及你应该如何在 javascript中使用for-in循环,他有一个很好的问题.当你进行for-in循环时,为什么toString,hasOwnProperty和其他内置方法不会出现在循环中?

解决方法

ECMAScript为在对象(例如原型)中找到的每个属性定义了几个属性.其中一个是可枚举属性,如果设置为false,则将跳过该属性.

您可以使用defineProperty函数实际操作这些属性

This method allows precise addition to or modification of a property on an object. Normal property addition through assignment creates properties which show up during property enumeration (for…in loop),whose values may be changed,and which may be deleted. This method allows these extra details to be changed from their defaults.

猜你在找的JavaScript相关文章