2010-12-01 66 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" 
    ); 
    

參考:

相關問題