首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象引用问题

对象引用问题
EN

Stack Overflow用户
提问于 2012-02-18 20:30:48
回答 3查看 1.3K关注 0票数 1

我在JavasSript中遇到了一个奇怪的问题。

有三个变量(声明为var),它们都存储一个对象;比如var object1object2object3

好的,我现在要做的就是赋值object2=object1object3=object1

当我向object2添加内容时,它会自动添加到object3中。奇怪?:|

请帮帮忙。我想我在这里遗漏了一些基本的基础知识,但我无法理解它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-18 20:34:56

那么这有什么奇怪的呢?

您将引用传递给对象,并且不克隆对象,而不是克隆对象。因此,将变量object1修改为object3实际上引用了同一个对象,因此“自动更新所有变量”。

票数 2
EN

Stack Overflow用户

发布于 2012-02-18 20:34:53

当您指定opject2 = object1时,您并不是在复制object1,而是简单地要求这两个名称引用同一个对象。您需要创建一个新对象,并将object1中的属性复制到其中。如何做到这一点取决于您有哪些Javascript库可用。

jQuery提供复制技术described here

票数 2
EN

Stack Overflow用户

发布于 2020-06-05 18:17:49

您必须克隆对象或使用Object.create( object )函数并传递对象,以便它将创建一个新的对象,而不是分配引用

查看图片

代码语言:javascript
复制
var obj1 = {key: 1}
var obj2 = Object.assign({},obj1)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9341159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档