博客 / 列表

王大山 - 我看underscore 源碼設計

先過濾掉underscore內部各個工具函數的具體邏輯,只看源碼庫本身有什麼內容。 構造函數 underscore有兩種調用方式: 風格對象 _.map([1, 2, 3], function(n){ return n * 2; }); 函數風格_([1, 2, 3]).map(function(n){ return n * 2; }); _是一個函數對象,api中的函數全都掛載到_上,實

underscore , 前端 , Javascript

王大山 - Javascript緩存函數&柯里化&偏函數

緩存函數 memorizition 定義:將上次的計算結果緩存起來,當下次調用時,如果遇到相同的參數,就直接返回緩存中的數據。 let add = (a,b) = a+b; let calc = memoize(add); calc(10,20);//30 calc(10,20);//30 緩存 如果要實現以上功能,主要依靠 閉包 、柯里化、高階函數 實現原理:把參數和對應的結果數據存在一個對象中

高階函數 , 偏函數 , 緩存 , currying , Javascript