我正在和另一个开发人员讨论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.