javascript中的ONDELETE对象事件

javascript中的ONDELETE对象事件,javascript,object,destructor,Javascript,Object,Destructor,我有一个模态对象,它在创建DOM元素时创建DOM元素。 我想知道是否有可能在用户对对象调用“delete”时删除节点。比如: var modal = function (options) { var domHolder = null; function build() { domHolder = document.createElement("div"); //construct a modal window inside the element

我有一个模态对象,它在创建DOM元素时创建DOM元素。 我想知道是否有可能在用户对对象调用“delete”时删除节点。比如:

var modal = function (options) {
    var domHolder = null;

    function build() {
        domHolder = document.createElement("div");
        //construct a modal window inside the element...
    };

    this.ondelete = function() {
        domHolder.parentNode.removeChild(domHolder);
    }

    build();
};

//destruct the object and remove the nodes
var myModal = new modal();
delete myModal;

delete不会触发onDeleteEvent,delete是一个操作符

“删除”操作符从对象中删除属性

应该调用ondelete方法从DOM中删除元素

var myModal = new modal();
myModal.ondelete() ;
JavaScript被自动垃圾收集;只有当垃圾收集器决定运行并且对象符合条件时,才会回收对象的内存


delete操作符与直接释放内存无关(它只通过中断引用间接地释放内存)。有关详细信息,请参见本页)。

您可以这样解决:
自己调用delete函数,而不是delete操作符
(我编辑代码以进行一些清理。)

var模态=功能(选项){
var-domHolder=null;
函数构建(){
domHolder=document.createElement(“div”);
domHolder.innerHTML=“是”;
文件.getElementById(“测试”).appendChild(DOMCholder);
};
this.delete=函数(){
domHolder.parentNode.removeChild(domHolder);
删除domHolder;
//删除…其他可以释放的对象。。。
//…以便可以对实例进行垃圾收集
}
build();
};
//销毁对象并删除节点
var myModal=新模态();
document.getElementById(“清除”).addEventListener(“单击”,函数(){
myModal.delete();
})


删除
你不能,javascript没有析构函数。一个
WeakMap
能帮你吗?有任何例子@JanDvorak吗?你能解释一下你展示的类的用途吗。这是我的职责。我的问题是:“在这种情况下,你到底为什么需要析构函数”,任何“也许没有析构函数就有一个解决办法”,但对于这一点,我必须理解上下文。这个
delete
让我有点烦。删除操作符与直接释放内存无关,真的吗?谢谢你的参考,这是一个很好的例子。根据所有答案/参考资料,我们必须手动“销毁”。