2014-03-04 56 views
3

使用下劃線,我想爲parseInt創建一個partial function,這樣在使用map時,基數始終爲10。如何使用下劃線爲parseInt()創建部分函數_

我希望下面的工作,但它並不:

var parseInt10 = _.partial(parseInt, _, 10); 

docs似乎在說,它可能使用_作爲佔位符跳過參數將在_.partial後規定:

_.partial(函數,*參數)

部分地由任何數量的其參數填充應用一個函數, 而不更改其動態此值。緊密的表親。您可以在您的參數列表中傳遞_來指定 不應預先填充的參數,而是在通話時保持開放狀態以供應。

測試

_.map([_, '_', undefined, null], function(x) { return _.partial(function(){ return arguments }, x, 10)('123'); }) 

使用_.partial(function(){ return arguments }, x, 10)('123')_"_"undefinednull更換x,我發現所有這些值被原樣傳遞直接作爲預期。我的印象是,傳遞_意味着它不會被直接使用。

注:

我完全知道我可以做這樣的事情:

var parseInt10 = function(n) { return parseInt(n, 10); }; 

然而,強調的doc事實似乎暗示,它可能使用_.partial有我不知道我是什麼做錯了。

那麼,我解釋下劃線文檔錯誤還是沒有處理跳過參數的特殊值?

+0

對我的作品這裏http://jsbin.com/sahiruqo/1/edit – elclanrs

+0

@elclanrs好像他們只是加了這個功能,不敢相信我忽略了這麼簡單的東西! – user193130

回答

5

我剛決定檢查source code,它似乎佔位符功能爲_.partialwas addedrecently。使用下劃線文檔頁面上的JS控制檯,它工作!

var parseInt10 = _.partial(parseInt, _, 10); 

猜猜我只是需要升級到最新版本。

(對所有那些寫未來文檔,這將是很好的內聯與版本號類似的jQuery或Django的文檔變化的註釋,或者至少使其更顯眼的是哪個版本正在呈現)