JS 函數式編程

1.常例 
// 太傻了
var getServerStuff = function(callback){
  return ajaxCall(function(json){
    return callback(json);
  });
};

// 這纔像樣
var getServerStuff = ajaxCall;

  解析:ajax

// 這行 hang
return ajaxCall(function(json){
  return callback(json);
});

// 等價於這行
return ajaxCall(callback);

// 那麼,重構下 getServerStuff
var getServerStuff = function(callback){
  return ajaxCall(callback);
};

// ...就等於
var getServerStuff = ajaxCall; // <-- 看,沒有括號哦

 2.儘量避免使用 this,結合 bind,apply 等的使用。json

 3.純函數,如 slice,相同的輸入返回相同的輸出;固定的變量建議設置在函數做用域內,作到自給自足,或使用凍結函數方法 Object.freeze({ a : 1 })。緩存

  tips1:const 與 freeze 不一樣。app

  tips2:涉及緩存 memoize 技術函數

  tips3:純函數利於測試,給個輸入,斷言輸出便可;純函數利於移植,不關注環境,配置等。測試

相關文章
相關標籤/搜索