我正在尝试更好地理解 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
的新值?
最佳答案
If
product.sku
changes to a new object, willappSku
update?
没有
How can I ensure that the
appSku
variable gets the new value ofproduct.sku
?
您必须将其编写为通过引用对象产品
访问sku的函数,例如
var appSku = (function (o) {
return function () {
return o.sku;
}
}(product));
并且始终使用appSku()
这对您的情况并没有多大帮助,尽管直接使用 product.sku
更干净
也就是说,如果 product.sku
未更改为新对象,而是前一个对象仅修改了其属性,则 appSku
和 product.sku
仍然是同一件事
关于JavaScript 对象关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185320/