另外一种使用hasOwnProperty()
的形式是取消Object.prototype上的方法。
for (var i in man) { if (Object.prototype.hasOwnProperty.call(man, i)) { // 过滤 console.log(i, ":", man[i]); }}
其好处在于在man对象重新定义hasOwnProperty情况下避免命名冲突。也避免了长属性查找对象的所有方法,你可以使用局部变量“缓存”它。
var i, hasOwn = Object.prototype.hasOwnProperty;for (i in man) { if (hasOwn.call(man, i)) { // 过滤 console.log(i, ":", man[i]); }}
时间: 2024-10-13 01:55:26