Javascript 更改其原型中的当前对象

Javascript 更改其原型中的当前对象,javascript,prototyping,Javascript,Prototyping,如何更改对象本身,指向对象的指针,创建另一个对象 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 }

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

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"

您可以这样定义您的原型:

Array.prototype.change = function (b) {
   this.length = 0;
   this.push.apply(this, b);
}
在内部,它将清除现有数据并从参数中的数组中添加数据


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

您想这样做,还是(如您问题中的
b
所示)?不管是哪种方式:
返回
任何内容(尽管您可能必须首先传入'other'变量,这使得它有点无意义)。您不能分配
,只需
返回
某个内容并将结果分配给变量。您不能分配给范围外的变量,也不能分配给
。您只能修改您拥有的对象。Erm可能重复。。。但是如果你想让它们成为同一个对象,
a=b
又有什么问题呢?如果你想
a
成为
b
的克隆,那就做吧。