更改其原型中的当前对象

时间:2013-09-12 21:56:08

标签: 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
}

str="hello";

str.double();

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

1 个答案:

答案 0 :(得分:1)

您可以像这样定义原型:

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

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

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