所有,假设我们有如下代码。
var b ={};
var a=b;
b=null;
if (a==null)
{
alert('a is null');
}
在代码运行之前,我认为a
应该为空,因为我认为a
和b
指向同一个对象或它们应该是相同的地址。但事实并非如此。 javascript对象引用类型不是像古典语言(c++/c#/java)吗?还是我错过了一些重要的事情?谢谢。
最佳答案
在 JavaScript 中,所有变量都是按值保存和传递的。
但是,对于对象(任何非原始对象)来说,该值是一个引用。
var v1, v2;
v1 = {
someProp: true
}; // Creates an object
v2 = v1; // The object now has two references pointed to it.
v1 = null; // The object now has one reference.
console.log(v2); // See the value of the object.
v2 = null; // No references left to the object. It can now be garbage collected.
关于javascript - javascript 对象都是引用类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24377188/