2014-10-03 82 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