在javascript中编辑原型方法.push()

时间:2017-06-10 07:47:42

标签: javascript methods parameters prototype

我从未使用原型,也许我甚至不了解它是如何工作的,所以我在这里。

我正在尝试更改 .push()在javascript中的工作方式:它将参数添加为最后一个元素,但我希望它在第一个位置添加参数 /强>

这是我的非工作猜测:

    Array.prototype.push() = function(e){
      var x = [e]; 
      return x.concat(this);
    }

对不起我可能犯的惊人错误:)

免责声明:我只是想了解如何修改原生方法。为什么每个人都这么害怕?

2 个答案:

答案 0 :(得分:1)

松开括号:

Array.prototype.push = function(e){
  var x = [e]; 
  this.unshift(e);
}

编辑:

如果你不想在里面使用unshift,你可以进行拼接:

 Array.prototype.push = function(e){
   var x = [e];   
var y = [];
   for(var j = 0; j< this.length; j++) y[j] = this[j];
   this[0] = x;
   for(var i = 0; i < y.length; i++) this[i+1] = y[i];
}

答案 1 :(得分:1)

要在第一个位置添加元素,请使用.unshift。您不需要prototype

您不想覆盖.push()或任何其他原生方法。

var data = [1,2,3,4,5];
data.unshift(10);

// 10 is first element
console.log(data);