87,922
社区成员
发帖
与我相关
我的任务
分享
var myarray =
{
add:function(elem)
{
Array.prototype.push.call(this,elem);
}
}
myarray.add(1);
alert(myarray.length);
alert(myarray[0]);
var myarray =
{
add:function(elem)
{
Array.push.call(this,elem);
}
}
myarray.add(1);
alert(myarray.length);
alert(myarray[0]);
Array.prototype.push
Array.push
2个push其实是一个对象,
但是用法不一样
Array.prototype.push是array中定义好的对象也就是方法,这里可以对push进行重写等操作
Array.push是使用当前Array对象的push方法
Array.push = Array.prototype.push
var myarray =
{
add:function(elem)
{
Array.push.call(this,elem);
}
}
myarray.add(1);
alert(myarray.length);
alert(myarray[0]);
var myarray =
{
add:function(elem)
{
[].push.call(this,elem);
}
}
myarray.add(1);
alert(myarray.length);
alert(myarray[0]);
var a =new Array();
a.push =1;//这才给a对象赋予一个push方法
alert(a.push);//1
delete a.push
alert(a.push);//原型链上的方法
此Array非彼Array
alert('push' in new Array())
alert(new Array().push === Array.prototype.push)