javascript - 使用 Array.prototype 为array添加方法后,获取key数目不对的问题

查看:83
本文介绍了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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆