Javascript - 如何取消底层引用?

标签 javascript reference

给出这个 javascript 代码:

this.underlyingReference = {name: 'joe'};

this.nullMe(this.underlyingReference);

alert(this.underlyingReference.name);

function nullMe(variable) {
   variable = null;
}

在 Javascript 中有没有办法让我使用“变量”使 this.underlyingReference 为空?我希望能够清空变量并清空基础引用,而不是简单地清空对引用的引用。

我读过这样的文章 http://snook.ca/archives/javascript/javascript_pass关于 Javascript 的引用传递功能,但看起来好像当你想销毁底层引用时,行为并不是我对引用的期望。

当执行通过第二行代码时,我希望“this.underlyingReference”无效。然而,警告线显示底层引用仍然存在并且在运行。

最佳答案

为什么不直接将 null 分配给该属性:

this.underlyingReference = null;
alert(this.underlyingReference);// null

或者,如果你想销毁属性,你可以使用删除:

delete this.underlyingReference;
alert(this.underlyingReference);// undefined

如果你还想有一个函数调用,你可以使用这个设置:

var NullMe = function(obj, propName) 
{
    obj[propName] = null;
    //OR, to destroy the prop:
    delete obj[propName];
}
NullMe(this, 'underlyingReference');

关于Javascript - 如何取消底层引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7230178/

相关文章:

reference - 引用旧类库的 ASP.Net 5 项目

javascript - Angularjs ng-repeat 按 id 过滤

javascript - 通过 Selenium Webdriver 中的 Java Script Executor 传递复杂的 xpath

javascript - 在 HTML5 canvas 中,translate() 和 moveTo() javascript 函数有什么区别?

C# System.Drawing 引用问题

perl - %$var 是否取消引用 Perl 哈希?

javascript - 如何从 Javascript 或 Typescript 的常规日期列表中过滤本周的日期?

javascript - xpath 和 html 值 (javascript)

java - 匿名类——我们可以为同一个匿名类创建两个新对象吗?

c++ - 引用与指针特化