gpt4 book ai didi

javascript - 将当前对象设置为空

转载 作者:行者123 更新时间:2023-12-02 14:35:56 24 4
gpt4 key购买 nike

如何将当前对象设置为 null?

function ZPNode(){}; //Constructor 
function _destroy(){
//this = null; --> Won't work obviously
}
ZPNode.prototype.remove = function(){
//Remove node
_destroy.call(this);
};

编辑:也许描述不清楚。应该发生的事情是这样的:

var tree = ZPTree.create(jsonArr);  
var node = tree.findNode(1);
node.remove();
console.log(node); //null

原因很简单。您不想意外地执行以下操作:

node.remove(); 
node.appendChild(anotherNode); //Oops

如果没有其他方法,可能的解决方案是使用对象的状态。

Edit2:经过更多研究,我认为总体上不可能。我会不情愿地采用解决方案。我可以做类似的事情:

tree.removeNode(node); 

尽管在我看来它看起来不太干净。

最佳答案

JavaScript 会自动进行垃圾回收;仅当垃圾收集器决定运行并且该对象符合条件时,才会回收该对象的内存。您不需要在 _destroy 函数中删除 this,只需删除它的所有引用即可。

function ZPNode(){}; //Constructor 
function _destroy(){
//this = null; --> Won't work obviously
}
ZPNode.prototype.remove = function(){
//Remove node
_destroy.call(this);
};

如果您想实现此目的,一个选项是使您的 Object 实例无效,但这并不能保证另一个引用仍然指向该对象。

var obj = new ZPNode();
obj = null;

关于javascript - 将当前对象设置为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37455249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com