javascript - JSON 对象单例行为的混淆?

标签 javascript json

<分区>

我是客户端应用程序开发的新手,需要弄清楚下面提到的问题。

我有一个对象 var obj1={'name':'Sachin'}

我将该对象分配给 obj2

var obj2=obj1.

现在我的 obj2obj1 对象都是一样的

现在通过使用 obj2 我更改名称属性值,如下所示

obj2.name="Dravid";

现在我的 obj1obj2 两个名称属性值都变成了“Dravid”,因为 JSON 对象的“sigletone”行为?正确吗?

现在我的问题是:

如果我让我的obj1是空的

   obj1={}

那为什么我的obj2没有变成空的?

它仍然显示 obj2={'name':'Dravid'}

这背后的原因是什么?

请帮我解决这个问题。

提前致谢...


最佳答案

我相信当您进行第一个赋值时,obj1 然后将 obj1 赋值给 obj2,您正在复制对内存中的相同位置。然后,当您将空的 { } 分配给 obj1 时,您将在内存中创建一个新对象,替换另一个引用。此时 obj1obj2 有不同的引用

关于javascript - JSON 对象单例行为的混淆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45605872/

相关文章:

javascript - Angular TinyMCE 集成

javascript - 通过 eventHandler 更新状态

android - Retrofit 2 - 是否可以获得我发送和接收的 JSON 的大小?

java - Android:尝试使用 AsyncTask 和 JSON 下载图像时崩溃

ios - 如何快速将json传递给服务器

javascript - onUserLocationChange 更改 React Native map 区域

javascript - 外部文件中 Javascript 中的相对路径

javascript - 同一页面上的用户控件的多个实例

android - GSON:在不使用全局 serializeNulls() 的情况下序列化单个空字段

javascript - 如何使用 Windows 8 JSON.parse 将 JSON 文本反序列化为日期类型?