天天看點

js中的Hook

1. 簡單了解:

  hook(鈎子)就是: 把将要執行的的函數或者一系列動作注冊到一個統一的接口下面, 當應用程式調用此接口(即hook)時,就等于調用了這一系列動作。

JS中的鈎子(hook)的例子

JS中的鈎子(hook)的例子1:

例如我們在向背景進行ajax請求的時候,背景經常會傳回我們一些常見的錯誤碼,如:001代表使用者不存在,002代表使用者密碼輸入錯誤。003代表使用者被鎖定。這個時候我們要将錯誤友好的提示給使用者。這個時候我們該怎樣實作呢?

一般的寫法可能是:

$.ajax(option,function(result){
    var errCode = result.errCode ;//錯誤碼
    if(errCode){
          if(errCode =='001'){
               alert("使用者不存在")
            }else if(errCode =='002'){
               alert("密碼輸入錯誤")
            }else if(errCode =='003'){
              alert("使用者被鎖定")
            }
    }else{
           //登入成功
   }
},function(err){
 
})           

複制

這樣寫其實是比較low低,稍微有點經驗的可能會使用switch case來實作,但是這個兩種寫法都無法避免一個問題就是如果我的錯誤碼特别多,那得寫多少個if else和case 啊?但是如果使用hook寫法的話就會簡單好多,

首先我們先聲明一個錯誤碼鈎子清單

var codeList  = {
   "001":"使用者不存在",
   "002":"密碼輸入錯誤",
   "003":"使用者被鎖定"
}
$.ajax(option,function(result){
    var errCode = result.errCode ;//錯誤碼
      if(!errCode){
          alert(codeList[errCode]);
      }else{
          //登入成功
      }
},function(err){
 
})           

複制