我从未使用原型,也许我甚至不了解它是如何工作的,所以我在这里。
我正在尝试更改 .push()在javascript中的工作方式:它将参数添加为最后一个元素,但我希望它在第一个位置添加参数 /强>
这是我的非工作猜测:
Array.prototype.push() = function(e){
var x = [e];
return x.concat(this);
}
对不起我可能犯的惊人错误:)
免责声明:我只是想了解如何修改原生方法。为什么每个人都这么害怕?
答案 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);