2014-10-03 90 views
0

我試圖更好地理解Javascript中的對象關係。我有以下對象:Javascript對象關係

var product = {id: 1, name: 'Test Product', sku: {id: 2, sku: 'ABC'}}; 

現在,我還設置了以下變量:

var appSku = product.sku; 

如果product.sku變化到一個新的對象,將appSku更新?也就是說,如果在代碼中的其他地方我這樣做:

product.sku = {id: 3, sku: 'EFG'}; 

我怎樣才能確保appSku變量獲得的product.sku新的價值?

+0

你試過了嗎? – 2014-10-03 19:16:23

+0

是的,我試過了在JS控制檯,並知道它不起作用。 – flyingL123 2014-10-03 19:19:55

回答

4

如果product.sku更改爲新對象,將更新爲appSku

沒有

我怎樣才能確保appSku變量獲得的product.sku新的價值?

你將不得不爲函數經由基準訪問SKU對象product,例如把它寫

var appSku = (function (o) { 
    return function() { 
     return o.sku; 
    } 
}(product)); 

而且總是用appSku()

這不是你的情況確實有幫助,但如使用product.sku直接更乾淨


這就是說,如果product.sku沒有改變的新對象,而是前一個只是它的屬性被修改,然後appSkuproduct.sku仍然是相同的東西

+0

當你在附近展示時,它是否需要書寫?這是什麼原因?它不能只是一個函數返回product.sku的值嗎? – flyingL123 2014-10-03 19:29:00