使用下劃線,我想爲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')
與_
,"_"
,undefined
,null
更換x
,我發現所有這些值被原樣傳遞直接作爲預期。我的印象是,傳遞_
意味着它不會被直接使用。
注:
我完全知道我可以做這樣的事情:
var parseInt10 = function(n) { return parseInt(n, 10); };
然而,強調的doc事實似乎暗示,它可能使用_.partial
有我不知道我是什麼做錯了。
那麼,我解釋下劃線文檔錯誤還是沒有處理跳過參數的特殊值?
對我的作品這裏http://jsbin.com/sahiruqo/1/edit – elclanrs
@elclanrs好像他們只是加了這個功能,不敢相信我忽略了這麼簡單的東西! – user193130