underscore原始碼分析 1

2021-09-14 05:47:05 字數 1300 閱讀 2567

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

var _ = function(obj) ;

_.each = function(obj, iteratee)

return obj;

};_.prototype.each = function() ;

_.each([1,2,3],console.log)

_([1,2,3]).each(console.log)

但是 我們怎麼實現下面的功能呢?

_([1,2,3]).map(function(a)).each(console.log) //報錯

// 2 0

// 4 1

// 6 2

在用underscore的時候我們發現有個_.chain方法,可以實現鏈式連寫

_.chain([1,2,3]).map(function(a)).each(console.log)

// 2 0

// 4 1

// 6 2

var _ = function(obj) ;

_.each = function(obj, iteratee)

return obj;

};_.map = function(obj, iteratee, context)

return results;

};var chainresult = function(instance, obj) ;

_.chain = function(obj) ;

_.prototype.each = function() ;

_.prototype.map = function() ;

_.prototype.chain = function() ;

_.chain([1,2,3]).map(function(a)).each(console.log)

function mixin();

});}

underscore原始碼閱讀整理

underscore是我閱讀的第乙份原始碼,這份 比較小巧,只有1500行,我閱讀的版本是1.8.3.underscore裡封裝了很多功能性的函式,和jquery不同,我覺得jquery的特點是對針對dom,而underscore裡都是基於js的功能性函式,比如each,map等等。以下內容僅是我閱...

underscore 原始碼閱讀 四

keys one two three 檢索object擁有的所有可列舉屬性的名稱。我們知道,在js中本就提供了幾個方法如for.in.object.keys來遍歷物件的屬性,為什麼underscore還是要封裝乙個api呢?這其實是為相容ie9版本下的乙個bug做的封裝 在ie9以下的版本中,以下 ...

underscore原始碼剖析之整體架構

最近打算好好看看underscore原始碼,乙個是因為自己確實水平不夠,另乙個是underscore原始碼比較簡單,比較易讀。本系列打算對underscore1.8.3中關鍵函式原始碼進行分析,希望做到最詳細的原始碼分析。今天是underscore原始碼剖析系列第一篇,主要對underscore整體...