【发布时间】:2019-02-11 16:46:54
【问题描述】:
我尝试用给定的值创建一个汽车对象。当功能正常工作时,我在控制台上打印它们,一切似乎都很好,但是,当我查看 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 时,我将值分配给正确的索引。当我控制台记录它们时,我看到了它。但是在创建之后,没有为汽车对象分配任何值。我无法弄清楚是什么问题。提前致谢。我的输出如下
brand
bmw
wheel
12
crash
true
Car {brand: "", wheel: 0, crash: false}
【问题讨论】:
-
这是做什么的:
Object.keys(this)[i] = array[i]?你必须做this[propertyName] = value -
获取 Car 对象的属性并将其分配到数组中的元素
-
@SüleymanAcar 不要那样做,
Object.keys不保证财产秩序。而是明确写出[this.brand, this.wheel, this.crash] = array;。或者更好的是,不要将数组作为参数,而是使用多个参数? -
您是对的,但我只是想获得新的方法来做到这一点,但感谢您的推荐。 @Bergi
标签: javascript prototype javascript-objects