2010-10-29 185 views
0

在Javascript中,我將如何創建一個具有屬性的自定義對象,這是另一個自定義對象。 例如。如何使用自定義對象創建自定義對象?

function Product() { 
    this.prop1 = 1; 
    this.prop2 = 2; 
} 


function Work(values) { 
    this.front = values.front || "default"; 
    this.back = values.back || "default"; 
    this.product = Product; 
} 

var w = new Work(); 
alert(w.product.prop1); //no worky 

回答

3

您需要創建的Product一個實例,像這樣:

function Product() { 
    this.prop1 = 1; 
    this.prop2 = 2; 
} 
function Work(values) { 
    this.front = values && values.front || "default"; 
    this.back = values && values.back || "default"; 
    this.product = new Product(); 
} 
var w = new Work(); 
alert(w.product.prop1); //1 

frontback變化是一個單獨的問題,因爲values沒有被通過,在你的榜樣,你」 d出現undefined錯誤。 You can test the result here


這裏是另一種方式我個人使用它來定義這些默認值:

function Work(values) { 
    values = values || { front: "default", back: "default" }; 
    this.front = values.front; 
    this.back = values.back; 
    this.product = new Product(); 
} 

You can try that version here

+0

謝謝。我也嘗試過,但由於我試圖設置正面和背面屬性,所以它沒有進入警報狀態。我可以問什麼「this.front = values && values.front ||」default「;」用英語嗎? – etoisarobot 2010-10-29 18:18:43

+0

@TooFat - 它試圖從它獲取一個屬性之前檢查'values'是不是falsy(在這種情況下是'undefined'),如果它是假的,它會立即進入OR('||')並抓取默認。 – 2010-10-29 18:20:27