这可能是一个简单的问题,但我需要创建一个等同于'class'的N个实例的JavaScript,其状态必须完全独立。
像:
var car = new Car('Ford');
var car = new Car('Toyota');
我怎样才能做到这一点?
答案 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"];