0

如何改变一个对象本身,指向对象的指针,创建另一个对象。

Array.prototype.change=function(b){
    // this=b; //does not work
}

a=[1,2,3];
b=[3,2,1];

a.change(b);

console.log(a); // Should be [3,2,1]

另一个例子:

String.prototype.double=function(){
    //this+=this; //like str+=str
}

str="hello";

str.double();

console.log(str); // echo "hellohello"
4

1 回答 1

1

你可以像这样定义你的原型:

Array.prototype.change = function (b) {
   this.length = 0;
   this.push.apply(this, b);
}

在内部,它将清除现有数据并在参数中从数组中添加数据。

这不会使 Array a 完全相等 Array b (它们仍然是具有不同引用的不同对象,并且a == b将是false),但两者中的数据将是相同的。

于 2013-09-13T18:07:50.540 回答