我有这个代码:
var doors = [];
for(var i = 0; i < 100; i++){
var door = new Door();
door.setDoorNumber(i);
doors.push(door);
};
门的实现是这样的:
Door = function(){
var doorNumber;
Door.prototype.getDoorNumber = function(){
return doorNumber;
};
Door.prototype.setDoorNumber = function(number){
doorNumber = number;
};
输出是这样的:
door[0].getDoorNumber(); // 99
door[1].getDoorNumber(); // 99
door[2].getDoorNumber(); // 99
door[3].getDoorNumber(); // 99
我希望输出是这样的:
door[0].getDoorNumber(); // 0
door[1].getDoorNumber(); // 1
door[2].getDoorNumber(); // 2
door[3].getDoorNumber(); // 3
这是怎么回事?我假设这是因为在 jsi
中是通过引用传递的。获得所需输出的最佳方法是什么?
谢谢!