4

これを考えると:

var p = function(){}; 
p.prototype = { id : null, arr : []}
var a = new p(); 
var b = new p();
a.id = 1;
a.arr.push(5);
alert(b.arr[0]);

アラート5は、a.arr == b.arrを意味しますが、a.idとb.idは別々です(a.id!= b.id)。a.arr!= b.arrになるようにするにはどうすればよいですか?

制約:

pは使用できなければなりませんnew p()。または、一意のpを作成する方法が必要です。

4

1 に答える 1

3

idとarrをpの各インスタンスに固有にする場合は、pコンストラクター内でそれらをインスタンス化する必要があります。プロトタイプオブジェクトは、共有定数と関数にのみ使用する必要があります。

var p = function(){
    this.id = null;
    this.arr = [];
}; 

var a = new p(); 
var b = new p();

a.id = 1;
a.arr.push(5);
alert(b.arr[0]);
于 2012-05-19T01:14:00.683 に答える