从对象中删除事件处理程序

时间:2019-09-10 09:22:07

标签: javascript

我正在使用原型模式建立一个框架。我想在createSetting上添加一个事件处理程序,以便其他人可以添加其功能
代码就是这样工作的

1)我使用new关键字创建了一个Field对象。它会触发settings_created
2)我创建了另一个Field对象,我不再需要上一个对象
3)两次触发事件settings_created
如何从先前的对象中删除事件处理程序,以某种方式销毁它更自在,但是我读到您无法销毁JS中的对象,这是什么最好的方法?

请注意,有多个事件处理程序,为了简化起见,我保留了一个。
谢谢。

var Field = function(){
    this.createSetting();
}

Field.prototype.createSetting = function(){
    $(document).trigger( 'setting_created' );
}

1 个答案:

答案 0 :(得分:0)

只需使用delete operator

<p id="demo"></p>
<p id="demo2">

// script        
function Person(first, last, age, eye) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eye;
}

Person.prototype.name = function() {
  return this.firstName + " " + this.lastName
};

var hisFather = new Person("John", "Doe", 50, "blue");
document.getElementById("demo").innerHTML = "His father is " + hisFather.name(); 
delete Person.prototype.name;
document.getElementById("demo2").innerHTML ="His father is " + hisFather.name(); 

这是工作中的fiddle