게으름 모드: 코드가 실행될 때마다 중복되는 지점 판단을 줄이고 대상에 대한 재정의를 통해 원 대상의 지점 판단을 차단한다.
// ,
var A = {}
A.on = function (dom, type, fn) {
if (dom.addEventListener) {
dom.addEventListener(type, fn, false)
} else if (dom.attachEvent) {
dom.attachEvent('on' + type, fn)
} else {
dom['on' + type] = fn
}
}
// ,
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
}
}
}
//
A.on = function (dom, type, fn) {
if (dom.addEventListener) {
A.on = function (dom, type, fn) {
dom.addEventListener(type, fn, false)
}
} else if (dom.attachEvent) {
A.on = function(dom, type, fn) {
dom.attachEvent('on' + type, fn)
}
} else {
A.on = function (dom, type, fn) {
dom['on' + type] = fn
}
}
}