gpt4 book ai didi

Javascript:编辑对象属性会更改不同对象的属性

转载 作者:太空宇宙 更新时间:2023-11-04 16:07:09 24 4
gpt4 key购买 nike

我想将对象a设置为等于对象b,然后编辑对象a的属性x。但是,当我编辑 a.x 时,b.x 也会由于某种原因发生更改。我该如何解决这个问题?

var b = {
x: 0,
y: 3

};
var a = b;
alert(b.x); //outputs 0
a.x = 1;
alert(b.x); //outputs 1?

最佳答案

实际上,b指向同一个对象a,即,两个变量都引用最初创建的同一个对象。相反,使用 Object.assign 将所有属性复制到新对象。方法。

var b = {
x: 0,
y: 3

};
var a = Object.assign({}, b);
alert(b.x); //outputs 0
a.x = 1;
alert(b.x); //outputs 1?

<小时/>

对于较旧的浏览器,请检查 polyfill option该方法的。

<小时/>引用: Is JavaScript a pass-by-reference or pass-by-value language?

关于Javascript:编辑对象属性会更改不同对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41782425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com