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 が Array b と完全に等しくなるわけではありません (それらは異なる参照を持つ異なるオブジェクトであり、a == bになりますfalse) が、両方のデータは同じになります。

于 2013-09-13T18:07:50.540 に答える