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
的克隆,那就做吧。