惰性模式
·
Yin灏
/**
* 减少每次代码执行时的重复性大分支判断,通过对对象重定义来屏蔽原对象中的分支判断。
*/
/**
* 加载即执行
*/
// 添加绑定事件方法 on
A.on = (function (dom, type, fn) {
if (document.addEventListener) {
return function (dom, type, fn) {
dom.addEventListener(type, fn, false);
};
} else if (document.attachEvent) {
return function (dom, type, fn) {
dom.attachEvent("on" + type, fn);
};
} else {
return function (dom, type, fn) {
dom["on" + type] = fn;
};
}
})();
console.log(A.on);
// 页面加载时就去执行可能真的会消耗一些资源。
/**
* 惰性执行
*/
A.on = function (dom, type, fn) {
if (document.addEventListener) {
A.on = function (dom, type, fn) {
dom.addEventListener(type, fn, false);
};
} else if (document.attachEvent) {
A.on = function (dom, type, fn) {
dom.attachEvent("on" + type, fn);
};
} else {
A.on = function (dom, type, fn) {
dom["on" + type] = fn;
};
}
// 执行重定义 on 方法
A.on(dom, type, fn);
};
A.on(document.body, "click", function () {
alert(11);
});