javascript - javascript 对象都是引用类型吗?

标签 javascript

所有,假设我们有如下代码。

var b ={};

var a=b;
b=null;
if (a==null)
{
    alert('a is null');
}

在代码运行之前,我认为a应该为空,因为我认为ab指向同一个对象或它们应该是相同的地址。但事实并非如此。 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/

相关文章:

javascript - 如何在UIWebView中使用Javascript?

javascript - Passport 用户不是函数

javascript - 使用选项卡集加载应用程序时如何使选项卡处于事件状态?

javascript - TypeError : this. auth.signInWithEmailAndPassword 不是函数

javascript - 如何使此交付计算器更加高效?

javascript - 在 IE8 中按 Enter 键意外触发 ng-click

javascript - 如何通过 on() 从 jquery 事件访问类方法

javascript - 过滤路径数组以仅保留最浅的路径

javascript - 如何从express下载 Angular xlsx

javascript - 在特定时间(秒)后调用 js url