向对象原型添加自定义函数

时间:2019-06-11 14:52:56

标签: javascript

我想知道如何使用原型向数组对象添加自定义函数。

我将函数称为get。 get获取一个索引,并从具有该索引的数组中返回元素。我知道这毫无意义,但是我将其用于教育目的。

这就是使用它的样子。

const a = ['1','2','3'];

a.get(2)----->返回'3'

这是我尝试过的。

Array.prototype.get = index => {
    return this[index];
};

let a = ['1','2' ,'3'];

console.log(a.get(1)); 

这向我返回了不确定的信息。

2 个答案:

答案 0 :(得分:1)

通过箭头功能,您无法绑定“ this”,因此在原型环境中,它等于“ window”。

尝试一下:

Array.prototype.get = function(index){
    return this[index];
};

答案 1 :(得分:0)

强烈建议您不要扩展/覆盖本机JavaScript内部结构。有很多原因会导致这种危险的做法,并且肯定会在未来花费很多,这是几年前发生在一种著名的JS框架(称为Prototype)上的

  

2010年4月,博主Juriy'kangax'Zaytsev(Prototype Core的作者)详细描述了猴子将新方法和属性修补到W3C DOM定义的对象中可能带来的问题。[5]这些想法呼应了Yahoo! 2010年3月发表的想法。开发商Nicholas C. Zakas的摘要如下:

     
      
  • 跨浏览器问题:主机对象不受规则,不兼容的IE DOM行为等的约束。
  •   
  • 名称冲突的机会
  •   
  • 性能开销
  •   

More info