在运行时向对象添加属性是否可以?它似乎运行正常,但是我应该注意哪些问题?
我正在使用第三方javascript API,它有一个对象类,我已经实例化并在实例化后添加了我自己的属性,如下面的代码:
例如,我可以这样做:
var Car = function (id, type) {
this.id = id;
this.type = type;
};
var myCar = new Car(1,"Nissan");
// CAN I DO THIS: (needsWork not a property of object Car)
myCar.needsWork = true;
答案 0 :(得分:8)
是的,这称为对象增强。它是JavaScript中的一个关键功能。
答案 1 :(得分:8)
实际上,您有两种方法可以在JavaScript中执行此操作:
向实例添加方法或属性(仅限此车)
var myCar = new Car(1,"Nissan");
myCar.needsWork = true;
为汽车原型添加方法或属性(所有汽车,甚至已经存在的汽车)
var myCar = new Car(1, "Nissan");
var biggerCar = new Car(2, "Hummer");
Car.prototype.needsWork = true;
alert( myCar.needsWork && biggerCar.needsWork
? "We need work"
: "Something wrong here"
);
<强>参考:强>
答案 2 :(得分:1)