鉴于此:
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。
答案 0 :(得分: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]);