underscore原始碼閱讀整理

2021-07-11 10:59:40 字數 1329 閱讀 3711

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函式就搞...