问题
为了方便调用,我们一般都会定义一些自定义的对象原型方法,比如下面这个:
Array.prototype.remove = function (callback) {
const index = this.findIndex(callback);
if (index > -1) {
this.splice(index, 1);
}
return index;
}
上面的代码定义了一个数组的删除方法,调用方便快捷。由于是定义在对象原型上,那就意味着所有的数组对象都具备这个方法。然而我们在用for...in去遍历这个数组的时候,就会导致remove的方法名也被遍历出来,如下:
for(let i in [<

文章讲述了如何在JavaScript中给数组对象添加自定义原型方法,以及在使用for...in遍历时遇到的问题。提出了两种解决方案:使用for...of或forEach代替,以及通过Object.defineProperty使方法不可枚举以避免被遍历。
最低0.47元/天 解锁文章
756

被折叠的 条评论
为什么被折叠?



