我正在尝试做这样的事情:
var obj={o:"a string"};
var o=obj.o
console.log(o)
o='modified'
console.log(o)
console.log(obj.o)
Run Code Online (Sandbox Code Playgroud)
结果是:
a string
modified
a string
Run Code Online (Sandbox Code Playgroud)
但我希望它是:
a string
modified
modified
Run Code Online (Sandbox Code Playgroud)
我也尝试解构但没有成功:似乎属性和变量没有链接。
有没有办法将 o 链接到 obj.o ?我不想使用 obj.o 来修改 obj 属性,而是使用 o 。
预先感谢您的帮助。
不,您不能“链接”变量和对象属性。
如果该o属性是对对象的引用,它将起作用:
var obj = { o: { foo: 'bar' } };
var o = obj.o;
o.foo = 'baz';
console.log(obj.o.foo); // 'baz'
Run Code Online (Sandbox Code Playgroud)
然而,基元被复制,你无法获得对字符串的引用。当你读属性的值o的obj,值复制,因为它是一个字符串,你这是不相关的老字符串中的对象一个新的字符串。
当您将新字符串分配给变量时,旧字符串值将丢失(至少对于变量o)。
| 归档时间: |
|
| 查看次数: |
167 次 |
| 最近记录: |