关于javascript中给数组新注册方法的后遗症-问答-阿里云开发者社区-阿里云

开发者社区> a123456678> 正文

关于javascript中给数组新注册方法的后遗症

2016-07-18 10:09:53 1608 2

我在一个页面的js的开头加入了以下代码

Array.prototype.search = function (name, value)

{
    for (var li in this) {
        if (this[li][name] == value) {
            return this[li];
        }
    }
    return false;
};


这个方法因为我用的挺多的才加入的,

但是加入了这个方法产生了一个问题 就是以后for in 循环数组的时候多了一个键值对!

最后一个键值对为:function (name, value)
{
    for (var li in this) {
        if (this[li][name] == value) {
            return this[li];
        }
    }
    return false;
}

这个怎么办???

取消 提交回答
全部回答(2)
  • zid
    2019-07-17 19:57:30

    因为for in会循环原型链,不单单是Array,你在任何object 的prototype上面加东西都会有你说的这种效果。办法就是用hasOwnProperty 判断一下,这也是一个遍历object的时候比较好的习惯

    0 0
  • a123456678
    2019-07-17 19:57:30
    bject.defineProperty(Array.prototype, "search", {
      enumerable: false,
      value: function (name, value) {
                for (var li in this) {
                    if (this[li][name] == value) {
                        return this[li];
                    }
                }
                return false;
            };
    });
    
    Array.prototype.search = function (name, value){
        for (var li in this) {
            if (this.hasOwnProperty(li)) {
                if (this[li][name] == value) {
                    return this[li];
                }
            }
        }
        return false;
    };
    0 0
添加回答
相关问答

11

回答

在阿里云上安装和运行Node.js全功略

ycwong 2013-09-18 15:17:30 63995浏览量 回答数 11

19

回答

【分享】如何提高网站的打开速度?

enj0y 2012-11-17 14:35:22 56706浏览量 回答数 19

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157032浏览量 回答数 145

28

回答

钉钉开放平台“常见问题常见问题常见问题“重要请关注

竹梅 2015-12-03 00:39:14 92807浏览量 回答数 28

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 146738浏览量 回答数 22

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 145578浏览量 回答数 31

23

回答

【云服务器分享】网站访问速度快才是硬道理

dreamdoo 2012-10-15 10:15:02 85166浏览量 回答数 23

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302550浏览量 回答数 249

13

回答

【云服务器分享】如何节省网站流量

dreamdoo 2012-10-15 10:36:09 80085浏览量 回答数 13

14

回答

对象存储oss【问答合集】

我是管理员 2018-08-03 14:54:02 67345浏览量 回答数 14
+关注
0
文章
14879
问答
问答排行榜
最热
最新
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载