這里以拿 添加事件示例
復(fù)制代碼 代碼如下:
// 方式1
function addEvent(el, type, fn){
if(el.addEventListener){
el.addEventListener(type, fn, false);
}else{
el.attachEvent('on'+type, fn)
}
}
// 方式2
var addEvent = document.addEventListener ?
function(el, type, fn) {el.addEventListener(type, fn, false);} :
function(el, type, fn) {el.attachEvent('on'+type, fn)};
方式1在函數(shù)內(nèi)做判斷,每次給元素添加事件都需判斷一次,效率相對(duì)低一些。
jQuery 1.6.1/Prototype 1.7/Mootools 1.3/tangram 1.3.6/reg.js/right.js都是采用這種分支方式。
方式2使用了兩個(gè)匿名函數(shù),僅在初始化時(shí)判斷一次,后每次調(diào)用無須判斷。效率相對(duì)高一些。
Ext/kissy/qwrap 采用這種分支寫法。