javascript - 使用 Array.prototype 为array添加方法后,获取key数目不对的问题
本文介绍了javascript - 使用 Array.prototype 为array添加方法后,获取key数目不对的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } };
如上,我添加了这么一个remove方法,结果Object.keys获取到的数目就都+1了。
比如使用Object.keys获取到的key:
[ 'carModelId',
'exColorId',
'function (val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }' ]
里面多了一个,就是上面所加的remove代码。这个还真不好筛选。如何解决呢?
解决方案
建议多贴一点代码
Object.keys获取的是实例属性,怎么会把原型中的给整出来了?
实在不行这样
Object.defineProperty(Array.prototype, 'remove', {
enumerable: false,
value: function(val) {
var index = this.indexOf(val);
if (index > -1) {
this.splice(index, 1);
}
}
});
这篇关于javascript - 使用 Array.prototype 为array添加方法后,获取key数目不对的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文