看看下劃線的_.partial
:
部分通過填寫任意數量的它的參數,在不改變其動態此值應用的功能。 您可以在參數列表中傳遞_來指定一個參數,該參數不應該被預先填充,而是在通話時保持開放狀態。
你的情況:
function foo(arg1, arg2, arg3, arg4) { console.log(arguments); }
foo = _.partial(foo, 'bar', _, 'qux');
foo('baz', 'lel');
> { '0': 'bar', '1': 'baz', '3': 'qux', '4': 'lel'}
是的,我知道這是不是你說的正是你想要的。你似乎想這兩個論據被擠在_
的地方。有圍繞不是明確指定兩個參數將在調用的時候填寫其他沒有什麼好辦法:
foo = _.partial(foo, 'bar', _, _, 'qux');
我並不推薦您使用此,但至少你可以看看他們的代碼並得到一些提示。
如果你想有預定的參數總是在最後,像'qux'
,你會需要一些額外的機器。例如,這裏有一個小程序(使用ES6,但你能適應),是一種把函數轉換爲在指定的參數被放置在參數列表的末尾:
function partialEnd(fn, ...predefinedArgs) {
return function() {
return fn.apply(this, [...arguments, ...predefinedArgs]);
};
}
您可以使用此類似這樣的:
function foo(arg1, arg2, arg3, arg4) { console.log(arguments); }
foo = _.partial(foo, 'bar', _, _);
foo = partialEnd(foo, 'lel');
foo('baz', 'lel');
> { '0': 'bar', '1': 'baz', '3': 'lel', '4': 'qux'}
:
function foo(a, b, c) { console.log(a + b + c); }
foo = partialEnd(foo, 3);
foo(1, 2) // outputs 6
你可以使用_.partial
_
佔位符,以獲得其中的一些參數插入到參數列表,和其他人總是放在最後的效果結合本
我不這麼認爲..如果你不需要這個參數爲什麼通過它 –