同一对象不总是相同吗?

迪玛·帕日斯基(Dima Parzhitsky)

为什么b 不等于null在下面的代码结束了吗?

var a = { property: "value" }, 
    b = a;
console.log(a === b); // true

a = null;
console.log(b); // Object { property: "value" }

我认为ab是与一个对象相关联的两个引用,因此都将成为null

特里斯坦·迪克森(Tristan Dickson)

在该行中:

a = 5;

您将“ a”指向包含整数值5的新内存块,将其先前对原始创建对象的引用覆盖。尝试以下方法:

var a = { property: "value" }, 
b = a;
console.log(a === b); // true

a.property = 5;
console.log(b); // Object {property: 5}

这样,您不会覆盖a,而是将键property指向的内存块从具有值的字符串更改为具有值"value"的整数5

这将保留a对包含您最初创建的对象的内存块的引用,您还可以将其设置为“ b”以指向下一行。

编辑:以上是回答您以前的问题。如果设置a为null,它将简单地删除对原始对象的引用。该对象将不会被垃圾回收,而任何东西(b在这种情况下)仍具有对该对象的引用。创建b之后,引用是独立的,但是两个引用都指向相同的内存块。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

复制哈希而不指向同一对象

Matlab-处理唯一对象的对象属性是指同一对象吗?

从同一对象处置对象

向量插入同一对象

同一对象上的stringByAppendingString

同一对象的链接方法

这是从数据库打开对象以相同形式进行编辑,然后使用django保存同一对象的更新值的正确方法吗?

仅在访问同一对象的相同方法时锁定线程

对同一对象的不同状态进行相同测试,而无需持久更改

为什么同一对象的相同绑定方法的ID相等?

为什么同一对象的不同方法具有相同的“ id”?

Java同步锁键对于同一对象的所有同步方法是否相同?

“ this ==&x”是确定指针(this)和引用(x)是否指向同一对象的正确方法吗?

我可以从同一对象javascript中调用私有函数吗

在 Parallel.Invoke 中更新同一对象的不同属性是线程安全的吗?

几个线程可以在同一对象上等待吗?

使用Java中的同一对象的多个线程会复制它吗?

从同一对象内部访问对象内部的数组

访问同一对象中的对象属性

Java中同一对象内的对象列表

多个指向同一对象的引用变量各自占用与该对象相同的内存占用量

JavaScript对象属性可以引用同一对象的另一个属性吗?

在Java中销毁对同一对象的多个引用

同一对象在不同的类中?

Linq合并来自同一对象实例的数组

杰克逊:引用同一对象

投射到同一对象时出现 ClassCastException

对同一对象的多个智能指针引用

同一对象的Mongodb嵌套组