创建具有不同值的模块的多个实例

时间:2012-07-07 04:51:49

标签: javascript

这可能是一个简单的问题,但我需要创建一个等同于'class'的N个实例的JavaScript,其状态必须完全独立。

像:

var car = new Car('Ford');
var car = new Car('Toyota');

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以使用数组对象来存储它们:

var cars = [];

cars.push(new Car('Ford'));
cars.push(new Car('Toyota'));

cars[0].beep();

您可以使用for循环迭代所有存储的实例:

for (var i = 0; i < cars.length; i++) {
  var car = cars[i];

  car.beep();
}

答案 1 :(得分:3)

如果很难看到问题在这里。

从您的代码段中我可以看到,您在创建新实例时可能遇到的唯一问题是您给它一个相同的名称。

给它一些其他的var名称:

var ford = new Car('Ford');
var toyota = new Car('Toyota');

否则,如果你有一个不同品牌的数组并希望将其转换为汽车对象数组,你可以这样做:

var types = ["Ford", "Toyota", "VW", "renault"];

var cars = {};

for (var i = 0; i != types.length ; i++)
  cars[types[i]] = new Car(types[i]);

你可以这样访问这些车:

var ford = cars.Ford;

或者像这样:

var ford = cars["Ford"];