惰性加載函數(shù)

1.常規(guī)

var addEvent=function(elem,type,handler){
  if(window.addEventListener){
    return elem.addEventListener(type,handler,false);
  }
  if(window.attachEvent){
    return elem.attachEvent('on'+type,handler)
  }
}

缺點:每次調(diào)用都會執(zhí)行條件判斷,可避免

2.改進,只在加載時做判斷

var addEvent=(function(){
  if(window.addEventListener){
    return function(elem,type,handler){
      elem.addEventListener(type,handler,false);
    }
  }
  if(window.attachEvent){
    return function(elem,type,handler){
      elem.attachEvent('on'+type,handler);
    }
  }
})();

缺點:雖避免了判斷,但如果從未使用過addEvent函數(shù),那么第一次瀏覽器嗅探成為多余

3.惰性載入,重寫函數(shù)

var addEvent=function(elem,type,handler){
  if(window.addEventListener){
    addEvenr=function(elem,type,hander){
      elem.addEventListenr(type,handler,false)
    }
  }
  else if(window.attachEvent){
    addEvent=function(elem,type,handler){
      elem.attachEvent('on'+type,handler);
    }
  }
  addEvent(elem,type,handler);
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 前端開發(fā)不可避免的會有跨瀏覽器的需求,為了兼容各瀏覽器,絕大時候我們的處理方式都是用幾個if...else或者tr...
    哦啦吧啦丶閱讀 2,103評論 0 4
  • 處理 IE 兼容性問題時,一般會進行一些嗅探操作,如何更好的解決這個問題呢? 例如下面自定義綁定事件函數(shù): 標準寫...
    rocneal閱讀 186評論 0 0
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進階之旅閱讀 115,556評論 24 450
  • 對于大多數(shù)單身的人來說 “偶爾慶幸單身 偶爾羨慕情侶”是最真實的寫照。 去一個喜歡的城市旅行,也會想“要是有你在就...
    陳子淏閱讀 1,194評論 1 15
  • 一、教材的分析與教材處理 1、教材的地位與作用 一節(jié)繪畫課,它通過對兒童畫這一特殊繪畫藝術(shù)語言的講解與練習,使學生...
    老泡兒閱讀 3,229評論 0 6

友情鏈接更多精彩內(nèi)容