JS 函数式编程

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

// 这才像样
var getServerStuff = ajaxCall;

  解析:

// 这行 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 等的使用。

 3.纯函数,如 slice,相同的输入返回相同的输出;固定的变量建议设置在函数作用域内,做到自给自足,或使用冻结函数方法 Object.freeze({ a : 1 })。

  tips1:const 与 freeze 不同。

  tips2:涉及缓存 memoize 技术

  tips3:纯函数利于测试,给个输入,断言输出即可;纯函数利于移植,不关注环境,配置等。

原文地址:https://www.cnblogs.com/yuqlblog/p/9834882.html