给出这个 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/