javascript 中的 ONDELETE 对象事件
ONDELETE object event in javascript
我有一个模态对象,它在创建时会创建 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;
删除不会触发 onDeleteEvent ,删除是一个运算符;
The delete operator removes a property from an object.
您应该调用 ondelete 方法从 DOM 中删除元素。
var myModal = new modal();
myModal.ondelete() ;
JavaScript 被自动垃圾回收;仅当垃圾收集器决定 运行 并且对象符合回收条件时,才会回收对象的内存。
delete 运算符与直接释放内存无关(它只是通过中断引用间接执行)。有关详细信息,请参阅 memory management 页面。
你可以这样解决:
自己调用删除函数而不是删除操作符
(我编辑了代码以进行一些清理。)
var modal = function (options) {
var domHolder = null;
function build() {
domHolder = document.createElement("div");
domHolder.innerHTML = "yes";
document.getElementById("test").appendChild(domHolder);
};
this.delete = function() {
domHolder.parentNode.removeChild(domHolder);
delete domHolder;
// delete ... other objectsthat can be released, ...
// ... so that the instance can be garbage collected
}
build();
};
//destruct the object and remove the nodes
var myModal = new modal();
document.getElementById("clear").addEventListener("click", function(){
myModal.delete();
})
<div id="test">
</div>
<button id="clear">delete</button>
我有一个模态对象,它在创建时会创建 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;
删除不会触发 onDeleteEvent ,删除是一个运算符;
The delete operator removes a property from an object.
您应该调用 ondelete 方法从 DOM 中删除元素。
var myModal = new modal();
myModal.ondelete() ;
JavaScript 被自动垃圾回收;仅当垃圾收集器决定 运行 并且对象符合回收条件时,才会回收对象的内存。
delete 运算符与直接释放内存无关(它只是通过中断引用间接执行)。有关详细信息,请参阅 memory management 页面。
你可以这样解决:
自己调用删除函数而不是删除操作符
(我编辑了代码以进行一些清理。)
var modal = function (options) {
var domHolder = null;
function build() {
domHolder = document.createElement("div");
domHolder.innerHTML = "yes";
document.getElementById("test").appendChild(domHolder);
};
this.delete = function() {
domHolder.parentNode.removeChild(domHolder);
delete domHolder;
// delete ... other objectsthat can be released, ...
// ... so that the instance can be garbage collected
}
build();
};
//destruct the object and remove the nodes
var myModal = new modal();
document.getElementById("clear").addEventListener("click", function(){
myModal.delete();
})
<div id="test">
</div>
<button id="clear">delete</button>