共计 318 个字符,预计需要花费 1 分钟才能阅读完成。
复现
// 扩大 Array 原型
Array.prototype.pip = function(){...}
// 创立数组实例
var arr = [];
// 应用 for...in 语句遍历实例
for(let index in arr){console.log(index);
}
// 数组实例中并无数据项,但遍历时会将原型办法 pip 遍历进去
起因
间接通过 Array.prototype.pip
的办法扩大原型办法,会默认 pip
办法为 可枚举 属性,所以会被 for...in
语句辨认并遍历。
解决
Object.defineProperties(Array.prototype, {
pip: {
enumerable: false, // 不可枚举
value: function () {...}
}
})
正文完
发表至: javascript
2022-06-05