如何通过值为i循环中的对象分配i?

时间:2013-08-17 04:55:03

标签: javascript

我有这段代码:

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

这笔交易是什么?我假设这是因为js i正在通过引用传递。获得所需输出的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:4)

目前,您只是创建一个新变量,并为该变量指定0到99。它不是Door对象的属性。

只需使用this对其进行限定即可使其正常运行。

Door = function(){
    this.doorNumber;
}

Door.prototype.getDoorNumber = function(){
    return this.doorNumber; 
};
Door.prototype.setDoorNumber = function(number){
    this.doorNumber = number;
};