underscore是我閱讀的第乙份原始碼,這份**比較小巧,只有1500行,我閱讀的版本是1.8.3.underscore裡封裝了很多功能性的函式,和jquery不同,我覺得jquery的特點是對針對dom,而underscore裡都是基於js的功能性函式,比如each,map等等。
以下內容僅是我閱讀過程中記錄的筆記,可能會有錯誤或理解不到位的地方。。。
underscore中:
(function
();}).call(this);
最外層是個立即執行函式,用call函式把this傳進去,我認為因為underscore既可以執行在瀏覽器端又可以執行在伺服器端,所以它傳入的是this,而不是像jquery一樣直接傳進去window
jquery中:
(function
(window, undefined) )
(window)
;
jquery中是直接指定了this=window
var optimizecb = function
(func, context, argcount) ;
case
2: return
function
(value, other) ;
case
3: return
function
(value, index, collection) ;
case
4: return
function
(accumulator, value, index, collection) ;
}return
function
() ;
};var cb = function
(value, context, argcount) ;
var createassigner = function
(keysfunc, undefinedonly)
}return obj;
};};
var basecreate = function
(prototype) ;
if (nativecreate) return nativecreate(prototype);
ctor.prototype = prototype;
var result = new ctor;
ctor.prototype = null;
return result;
};
underscore 原始碼閱讀 四
keys one two three 檢索object擁有的所有可列舉屬性的名稱。我們知道,在js中本就提供了幾個方法如for.in.object.keys來遍歷物件的屬性,為什麼underscore還是要封裝乙個api呢?這其實是為相容ie9版本下的乙個bug做的封裝 在ie9以下的版本中,以下 ...
Underscore原始碼閱讀極簡版入門
看了網上的一些資料,發現大家都寫得太複雜,讓新手難以入門。於是寫了這個極簡版的underscore原始碼閱讀。原始碼 1.1 架構 function this.call this 1.2 引入exports判斷,如果不支援exports則繼續使用this function if typeof exp...
underscore原始碼分析 1
underscore 版本1.83 最主要的乙個特性是鏈式呼叫 1,2,3 each console.log 1 0 3 1,2,3 2 1 3 1,2,3 3 2 3 1,2,3 我們先簡單的實現鏈式呼叫的功能 實現 each 1,2,3 console.log 是很簡單的 直接 each函式就搞...