我正在使用原型模式建立一个框架。我想在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' );
}
答案 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