作用:
1.参数复用
2.提前返回
3.延迟计算
正常情况下的绑定函数兼容写法
var addEvent = function(el, type, fn, capture) {
if (window.addEventListener) {
el.addEventListener(type, function(e) {
fn.call(el, e);
}, capture);
} else if (window.attachEvent) {
el.attachEvent("on" + type, function(e) {
fn.call(el, e);
});
}
};
提前返回 以下函数的绑定方式 只会执行一次if else 判断 不会像上方的每次都执行一次
var addEvent = (function(){
if (window.addEventListener) {
return function(el, sType, fn, capture) {
el.addEventListener(sType, function(e) {
fn.call(el, e);
}, (capture));
};
} else if (window.attachEvent) {
return function(el, sType, fn, capture) {
el.attachEvent("on" + sType, function(e) {
fn.call(el, e);
});
};
}
})();
可参考:http://www.zhangxinxu.com/wordpress/2013/02/js-currying/
网友评论