我尝试用给定的值创建一个car对象。虽然功能正在运行,但我在控制台上打印它们,一切似乎都没问题,但是,当看到car2的属性没有值分配它时。我的代码如下。
function Car()
{
this.brand = "";
this.wheel = 0;
this.crash = false;
}
Car.prototype.createNewCar2 = function(array)
{
for(var i=0; i < array.length; i++)
{
Object.keys(this)[i] = array[i];
console.log(Object.keys(this)[i]);
console.log(array[i]);
}
}
var car2 = new Car();
car2.createNewCar2(["bmw",12,true]);
console.log(car2);
当我创建newcar时,我将值分配给正确的索引。我在控制台时看到它。记录它们。但是在创建之后,没有赋值给car对象。我无法弄清楚问题是什么。提前致谢。我的输出如下
brand
bmw
wheel
12
crash
true
Car {brand: "", wheel: 0, crash: false}
实际上,您并未使用this
将值分配给对象的属性。你只是覆盖了对象的key
。您需要使用this
分配对象的值:
var keys = Object.keys(this);
this[keys[i]] = array[i];
function Car() {
this.brand = "";
this.wheel = 0;
this.crash = false;
}
Car.prototype.createNewCar2 = function(array) {
var keys = Object.keys(this);
for (var i = 0; i < array.length; i++) {
this[keys[i]] = array[i];
console.log(Object.keys(this)[i]);
console.log(array[i]);
}
}
var car2 = new Car();
car2.createNewCar2(["bmw", 12, true]);
console.log(car2);