JavaScript中本來是不支持事件的追加和移除的,但是我們可以通過自己的編寫代碼來實現。這用到了閉包
那閉包是什麼?
閉包就是內部函數用到了外部函數的參數或變量
外部函數的返回值是內部函數的調用
接下來是代碼
var eventHelper = (function () {
var kv = {};
return {
add: function (name, func) {
kv[name] = func;
window.onload = function () {
for (var k in kv) {
kv[k]();
}
};
},
remove: function (name) {
for (var k in kv) {
if (k == name) {
delete kv[name];
}
}
}
};
})();
大家可以舉例子試一下
eventHelper.add("f1", function () {
alert("第一個方法");
});
eventHelper.add("f2", function () {
alert("第二個方法");
});
eventHelper.remove("f1");