1

我会很感激一些帮助。我正在尝试做一个小的 javascript 程序,它执行以下操作:

1)我已经有一些数组,其中包含有关不同汽车的一些信息。例如:

var brand = ["Audi", "Ford", "Peugeot", "Nissan"];
var color = ["red", "black", "black", "white"];

2)然后,我想创建一个类来创建一辆新车并通过一种方法接收属性,该方法从我存储在数组中的那些中检索它们,

这样的事情正确吗?

function newcar() {
    this.prototype.loadinfo = function() {
        var cbrand = brand[0];
        var ccolor = color[0];
    }
}

抱歉,如果这是非常错误的,但我问的原因是我在检查的网页上没有找到有关此特定案例的任何信息。由于我只是想通过互联网教程来学习 javascript,所以我试图尽可能地猜测解决方案!

如果它是正确的(有点)或者正确的版本非常相似,我无法理解在制造新车时我应该如何在阵列中前进。例如,如果我运行它一次,创建的第一辆汽车将收到位置 [0] 上的信息,但如果我运行它两次或更多次......我怎么知道我应该在数组的哪个位置找到信息?

我对这个话题很困惑。如果有人能给我一些建议,我将不胜感激。与此同时,我继续阅读它,看看我是否发现了其他东西。

谢谢!

4

1 回答 1

1

如果我理解正确,您想为数组中的多个品牌创建一个新的汽车对象。首先是修复你的构造函数。请注意,构造函数是大写的,并且原型应该在外部声明,但您不需要原型,因为您处理的是唯一属性而不是共享方法。然后您可以传递 2 个将分配给属性的参数。换句话说:

function Car( brand, color ) {
  this.brand = brand;
  this.color = color;
}

如果您需要一种方法来读取这些属性,请将其添加到原型中,例如:

Car.prototype = {
  loadInfo: function() {
    alert( this.brand +':'+ this.color );
  }
};

最后,要为数组中的每个项目创建一辆新车,您可以这样做:

var cars = [];
for ( var i = 0; i < brand.length; i++ ) {
  cars.push( new Car( brand[i], color[i] ) );
}

现在cars阵列中有 4 辆汽车,每辆汽车都有不同的品牌和颜色。

但更好的是,您可以在一个对象和一个对象中组织您的品牌和颜色for...in来创建新车:

var cars = {
  Audi: 'red',
  Ford: 'black',
  Peugeot: 'black',
  Nissan: 'white'
};

var mycars = [];
for ( var c in cars ) {
  mycars.push( new Car( c, cars[c] ) );
}
于 2012-11-03T21:29:42.913 回答