2010-12-01 97 views
6

在运行时向对象添加属性可以吗?它似乎运行良好,但有什么问题我应该知道?我可以在javascript中动态添加属性吗?

我使用的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; 
+1

注意,在代码中车功能不是类。它是一个构造函数。你可以称它为“伪类”。 – 2010-12-01 17:01:36

+0

很高兴知道谢谢! – capdragon 2010-12-01 17:05:45

回答

7

是的,这就是所谓的对象增强。这是JavaScript中的一个关键功能。

7

其实,你有两种方式来做到这一点在JavaScript:

  1. 添加一个方法或属性的情况下(这辆车只)

    var myCar = new Car(1,"Nissan"); 
    myCar.needsWork = true; 
    
  2. 为汽车原型添加方法或属性(所有汽车,甚至已有的汽车)

    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" 
    ); 
    

参考:

相关问题