var objectA = {x: 10, y: 10};
var objectB = objectA;
objectB.x = 100;
objectB.y = 100;
console.log(objectA) => {x: 100, y: 100}
but:
objectB = null;
console.log(objbectA) => {x: 10, y: 10} // Not null
如何设置objectA = null
到objectB
?
答案 0 :(得分:0)
当您执行var objectB = objectA时,您只是复制引用而不是实际值。这就是为什么当你将objectB设置为null时,它被设置为null但是ObjectA中的引用仍然存在。
答案 1 :(得分:0)
你做不到。当对象在内存中分配时,它会一直保留到释放状态。在您的情况下,两个变量都指向相同的内存位置。没有办法使它变为null,但是你调用这个对象的方法,它将清除值:
var objectA = {x: 10, y: 10, clear: function() { this.x = 0; this.y = 0; }};
var objectB = objectA;
objectB.x = 100;
objectB.y = 100;
console.log(objectA) => {x: 100, y: 100}
objectB.clear();
console.log(objbectA) => {x: 0, y: 0}
console.log(objbectB) => {x: 0, y: 0}