?
This document uses PHP Chinese website manual Release
與_.before的相反; 這個(gè)方法創(chuàng)建一個(gè)調(diào)用func的函數(shù),一旦它被調(diào)用n次或更多次。
0.1.0
n
(number):調(diào)用前func
的調(diào)用次數(shù)。
func
(功能):限制功能。
(功能):返回新的限制功能。
var saves = ['profile', 'settings']; var done = _.after(saves.length, function() { console.log('done saving!');}); _.forEach(saves, function(type) { asyncSave({ 'type': type, 'complete': done });}); // => Logs 'done saving!' after the two async saves have completed.
創(chuàng)建一個(gè)函數(shù),調(diào)用func
最多n
參數(shù),忽略任何附加參數(shù)。
3.0.0
func
(函數(shù)):為參數(shù)加上參數(shù)的函數(shù)。
[n=func.length]
(數(shù)字):上限。
(功能):返回新的上限功能。
_.map(['6', '8', '10'], _.ary(parseInt, 1)); // => [6, 8, 10]
創(chuàng)建一個(gè)函數(shù),該函數(shù)使用創(chuàng)建的函數(shù)func
的this
綁定和參數(shù)調(diào)用,但調(diào)用時(shí)間少于n
次數(shù)。隨后對(duì)創(chuàng)建函數(shù)的func
調(diào)用返回上次調(diào)用的結(jié)果。
3.0.0
n
(序號(hào)):func
不再被調(diào)用的呼叫數(shù)量。
func
(功能):限制功能。
(功能):返回新的限制功能。
jQuery(element).on('click', _.before(5, addContactToList)); // => Allows adding up to 4 contacts to the list.
創(chuàng)建一個(gè)函數(shù),func
用它接收的參數(shù)的this
綁定thisArg
和 partials
前綴進(jìn)行調(diào)用。
該_.bind.placeholder
值默認(rèn)為_
單體版本,可用作部分應(yīng)用參數(shù)的占位符。
注意:與原生函數(shù)Function#bind綁定不同,此方法不會(huì)設(shè)置綁定函數(shù)的“長度”屬性。
0.1.0
func
(功能):綁定的功能。
thisArg
(*):的this
綁定func
。
[partials]
(... *):部分應(yīng)用的參數(shù)。
(函數(shù)):返回新的綁定函數(shù)。
function greet(greeting, punctuation) { return greeting + ' ' + this.user + punctuation;} var object = { 'user': 'fred' }; var bound = _.bind(greet, object, 'hi'); bound('!'); // => 'hi fred!' // Bound with placeholders. var bound = _.bind(greet, object, _, '!'); bound('hi'); // => 'hi fred!'
創(chuàng)建一個(gè)函數(shù),該函數(shù)調(diào)用前面的方法,object[key]
并在其partials
前面接收參數(shù)。
此方法不同于_.bind
允許綁定函數(shù)引用可能被重新定義或尚不存在的方法。
該_.bindKey.placeholder
值默認(rèn)為_
單體版本,可用作部分應(yīng)用參數(shù)的占位符。
0.10.0
object
(Object):調(diào)用該方法的對(duì)象。
key
(字符串):方法的關(guān)鍵。
[partials]
(... *):部分應(yīng)用的參數(shù)。
(函數(shù)):返回新的綁定函數(shù)。
var object = { 'user': 'fred', 'greet': function(greeting, punctuation) { return greeting + ' ' + this.user + punctuation; }}; var bound = _.bindKey(object, 'greet', 'hi');bound('!');// => 'hi fred!' object.greet = function(greeting, punctuation) { return greeting + 'ya ' + this.user + punctuation;}; bound('!'); // => 'hiya fred!' // Bound with placeholders.var bound = _.bindKey(object, 'greet', _, '!'); bound('hi'); // => 'hiya fred!'
創(chuàng)建一個(gè)函數(shù),該函數(shù)接受func的參數(shù),并調(diào)用func返回其結(jié)果,如果至少提供了arity參數(shù)數(shù)量,或者返回接受剩余func參數(shù)的函數(shù),依此類推。 如果func.length不夠,func的arity可能被指定。
_.curry.placeholder值,默認(rèn)為單個(gè)構(gòu)建中的_,可用作所提供參數(shù)的占位符。
注意:此方法不會(huì)設(shè)置curried函數(shù)的“l(fā)ength”屬性。
2.0.0
func
(功能):當(dāng)前的功能。
[arity=func.length]
(數(shù)字):func
的元數(shù)
(功能):返回新的當(dāng)前功能。
var abc = function(a, b, c) { return [a, b, c];}; var curried = _.curry(abc); curried(1)(2)(3); // => [1, 2, 3] curried(1, 2)(3); // => [1, 2, 3] curried(1, 2, 3); // => [1, 2, 3] // Curried with placeholders.curried(1)(_, 3)(2); // => [1, 2, 3]
此方法與_.curry類似,只是參數(shù)以_.partialRight而不是_.partial的方式應(yīng)用于func。
_.curryRight.placeholder值默認(rèn)為單個(gè)構(gòu)建中的_,可用作所提供參數(shù)的占位符。
注意:此方法不會(huì)設(shè)置curried函數(shù)的“l(fā)ength”屬性。
3.0.0
func
(功能):當(dāng)前的功能。
[arity=func.length]
(數(shù)字):func
的元數(shù)
(功能):返回新的當(dāng)前功能。
var abc = function(a, b, c) { return [a, b, c];}; var curried = _.curryRight(abc); curried(3)(2)(1); // => [1, 2, 3] curried(2, 3)(1); // => [1, 2, 3] curried(1, 2, 3); // => [1, 2, 3] // Curried with placeholders.curried(3)(1, _)(2); // => [1, 2, 3]
創(chuàng)建一個(gè)去抖動(dòng)函數(shù),該函數(shù)會(huì)延遲調(diào)用func,直到自上次調(diào)用去抖函數(shù)后等待幾毫秒后。 去抖動(dòng)函數(shù)帶有一個(gè)取消方法來取消延遲的func調(diào)用和一個(gè)flush方法來立即調(diào)用它們。 提供選項(xiàng)以指示是否應(yīng)在等待超時(shí)的前沿和/或后沿調(diào)用func。 func被提供給去抖動(dòng)函數(shù)的最后一個(gè)參數(shù)調(diào)用。 隨后調(diào)用debounced函數(shù)返回最后一次func調(diào)用的結(jié)果。
注意:如果前導(dǎo)和尾隨選項(xiàng)為true,則只有在等待超時(shí)期間多次調(diào)用debounced函數(shù)時(shí),才會(huì)在超時(shí)的后沿調(diào)用func。
如果wait為0且leading為false,則func調(diào)用被推遲到下一個(gè)tick,類似于超時(shí)值為0的setTimeout。
0.1.0
func
(功能):去抖功能。
[wait=0]
(數(shù)字):延遲的毫秒數(shù)。
[options={}]
(對(duì)象):選項(xiàng)對(duì)象。
[options.leading=false]
(boolean):指定在超時(shí)的前沿調(diào)用。
[options.maxWait]
(數(shù)字):最大時(shí)間func
可以在被調(diào)用之前被延遲。
[options.trailing=true]
(布爾值):指定在超時(shí)的后沿調(diào)用。
(功能):返回新的去抖功能。
// Avoid costly calculations while the window size is in flux. jQuery(window).on('resize', _.debounce(calculateLayout, 150)); // Invoke `sendMail` when clicked, debouncing subsequent calls. jQuery(element).on('click', _.debounce(sendMail, 300, { 'leading': true, 'trailing': false})); // Ensure `batchLog` is invoked once after 1 second of debounced calls. var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); var source = new EventSource('/stream'); jQuery(source).on('message', debounced); // Cancel the trailing debounced invocation. jQuery(window).on('popstate', debounced.cancel);
延遲調(diào)用func,直到當(dāng)前調(diào)用堆棧已被清除。 任何其他參數(shù)在調(diào)用時(shí)都會(huì)提供給func。
0.1.0
func
(功能):延遲的功能。
[args]
(... *):用來調(diào)用的參數(shù)func
。
(數(shù)字):返回定時(shí)器ID。
_.defer(function(text) { console.log(text);}, 'deferred'); // => Logs 'deferred' after one millisecond.
等待毫秒后調(diào)用func。 任何其他參數(shù)在調(diào)用時(shí)都會(huì)提供給func。
0.1.0
func
(功能):延遲的功能。
wait
(數(shù)字):延遲調(diào)用的毫秒數(shù)。
[args]
(... *):用來調(diào)用的參數(shù)func
。
(數(shù)字):返回定時(shí)器ID。
_.delay(function(text) { console.log(text);}, 1000, 'later'); // => Logs 'later' after one second.
創(chuàng)建一個(gè)調(diào)用func
顛倒參數(shù)的函數(shù)。
4.0.0
func
(功能):用于翻轉(zhuǎn)參數(shù)的功能。
(功能):返回新的翻轉(zhuǎn)功能。
var flipped = _.flip(function() { return _.toArray(arguments);}); flipped('a', 'b', 'c', 'd'); // => ['d', 'c', 'b', 'a']
創(chuàng)建一個(gè)函數(shù)來記憶func的結(jié)果。 如果提供了解析器,它將根據(jù)提供給memoized函數(shù)的參數(shù)確定用于存儲(chǔ)結(jié)果的緩存鍵。 默認(rèn)情況下,提供給memoized函數(shù)的第一個(gè)參數(shù)用作映射緩存鍵。 func被這個(gè)memoized函數(shù)的綁定調(diào)用。
注:緩存作為memoized函數(shù)的緩存屬性公開。 它的創(chuàng)建可以通過將_.memoize.Cache構(gòu)造函數(shù)替換為其實(shí)例實(shí)現(xiàn)Map方法接口clear,delete,get,has和set的構(gòu)造函數(shù)來定制。
0.1.0
func
(功能):輸出記憶功能。
[resolver]
(功能):解析緩存鍵的功能。
(功能):返回新的記憶功能。
var object = { 'a': 1, 'b': 2 }; var other = { 'c': 3, 'd': 4 }; var values = _.memoize(_.values); values(object); // => [1, 2] values(other); // => [3, 4] object.a = 2; values(object); // => [1, 2] // Modify the result cache. values.cache.set(object, ['a', 'b']); values(object); // => ['a', 'b'] // Replace `_.memoize.Cache`._.memoize.Cache = WeakMap;
創(chuàng)建一個(gè)否定謂詞func結(jié)果的函數(shù)。 func謂詞用所創(chuàng)建函數(shù)的綁定和參數(shù)調(diào)用。
3.0.0
predicate
(函數(shù)):否定的謂詞。
(函數(shù)):返回新的否定函數(shù)。
function isEven(n) { return n % 2 == 0;} _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); // => [1, 3, 5]
創(chuàng)建一次只能調(diào)用func的函數(shù)。 重復(fù)調(diào)用函數(shù)返回第一個(gè)調(diào)用的值。 函數(shù)被創(chuàng)建函數(shù)的這個(gè)綁定和參數(shù)調(diào)用。
0.1.0
func
(功能):限制功能。
(功能):返回新的限制功能。
var initialize = _.once(createApplication); initialize();initialize(); // => `createApplication` is invoked once
創(chuàng)建一個(gè)調(diào)用func
其參數(shù)轉(zhuǎn)換的函數(shù)。
4.0.0
func
(功能):包裝的功能。
[transforms=[_.identity]]
(...(函數(shù)|函數(shù)[])):參數(shù)轉(zhuǎn)換。
(功能):返回新功能。
function doubled(n) { return n * 2;} function square(n) { return n * n;} var func = _.overArgs(function(x, y) { return [x, y];}, [square, doubled]); func(9, 3); // => [81, 6] func(10, 5); // => [100, 10]
創(chuàng)建一個(gè)調(diào)用func的函數(shù),該函數(shù)帶有前綴給它接收到的參數(shù)的部分。 這個(gè)方法就像_.bind,只是它不會(huì)改變這個(gè)綁定。
_.partial.placeholder值(在單體構(gòu)建中默認(rèn)為_)可以用作部分應(yīng)用參數(shù)的占位符。
注意:此方法不會(huì)設(shè)置部分應(yīng)用函數(shù)的“l(fā)ength”屬性。
0.2.0
func
(功能):部分應(yīng)用參數(shù)的功能。
[partials]
(... *):部分應(yīng)用的參數(shù)。
(功能):返回新的部分應(yīng)用功能。
function greet(greeting, name) { return greeting + ' ' + name;} var sayHelloTo = _.partial(greet, 'hello'); sayHelloTo('fred'); // => 'hello fred' // Partially applied with placeholders. var greetFred = _.partial(greet, _, 'fred'); greetFred('hi'); // => 'hi fred'
此方法與_.partial類似,但部分應(yīng)用的參數(shù)會(huì)附加到它所接收的參數(shù)中。
_.partialRight.placeholder值(默認(rèn)為單個(gè)構(gòu)建中的_)可用作部分應(yīng)用參數(shù)的占位符。
注意:此方法不會(huì)設(shè)置部分應(yīng)用函數(shù)的“l(fā)ength”屬性。
1.0.0
func
(功能):部分應(yīng)用參數(shù)的功能。
[partials]
(... *):部分應(yīng)用的參數(shù)。
(功能):返回新的部分應(yīng)用功能。
function greet(greeting, name) { return greeting + ' ' + name;} var greetFred = _.partialRight(greet, 'fred'); greetFred('hi'); // => 'hi fred' // Partially applied with placeholders. var sayHelloTo = _.partialRight(greet, 'hello', _); sayHelloTo('fred'); // => 'hello fred'
創(chuàng)建一個(gè)調(diào)用func的函數(shù),其參數(shù)按照指定的索引進(jìn)行排列,其中第一個(gè)索引的參數(shù)值作為第一個(gè)參數(shù),第二個(gè)索引的參數(shù)值作為第二個(gè)參數(shù)提供,依此類推。
3.0.0
func
(函數(shù)):重新排列參數(shù)的函數(shù)。
indexes
(...(number | number [])):排列的參數(shù)索引。
(功能):返回新功能。
var rearged = _.rearg(function(a, b, c) { return [a, b, c];}, [2, 0, 1]); rearged('b', 'c', 'a')// => ['a', 'b', 'c']
創(chuàng)建一個(gè)調(diào)用func的函數(shù),該函數(shù)使用創(chuàng)建函數(shù)的此綁定以及作為數(shù)組提供的從start和之后的參數(shù)。
注意:此方法基于其余參數(shù)。
4.0.0
func
(功能):將休息參數(shù)應(yīng)用于的功能。
[start=func.length-1]
(數(shù)字):其余參數(shù)的起始位置。
(功能):返回新功能。
var say = _.rest(function(what, names) { return what + ' ' + _.initial(names).join(', ') + (_.size(names) > 1 ? ', & ' : '') + _.last(names);}); say('hello', 'fred', 'barney', 'pebbles'); // => 'hello fred, barney, & pebbles'
創(chuàng)建一個(gè)調(diào)用create function和一個(gè)參數(shù)數(shù)組func
的this
綁定的函數(shù)Function#apply
。
注意:此方法基于擴(kuò)展運(yùn)算符。
3.2.0
func
(功能):將參數(shù)傳播的功能。
[start=0]
(數(shù)字):價(jià)差的起始位置。
(功能):返回新功能。
var say = _.spread(function(who, what) { return who + ' says ' + what;}); say(['fred', 'hello']); // => 'fred says hello' var numbers = Promise.all([ Promise.resolve(40), Promise.resolve(36)]); numbers.then(_.spread(function(x, y) { return x + y;})); // => a Promise of 76
創(chuàng)建一個(gè)throttled函數(shù),每等待毫秒最多只調(diào)用一次func。 被扼殺的函數(shù)帶有一個(gè)取消方法來取消延遲的func調(diào)用和一個(gè)flush方法來立即調(diào)用它們。 提供選項(xiàng)以指示是否應(yīng)在等待超時(shí)的前沿和/或后沿調(diào)用func。 func被提供給限制函數(shù)的最后一個(gè)參數(shù)調(diào)用。 隨后調(diào)用throttled函數(shù)會(huì)返回最后一次func調(diào)用的結(jié)果。
注意:如果前導(dǎo)和尾隨選項(xiàng)為true,則只有在等待超時(shí)期間調(diào)用被阻止的函數(shù)多次時(shí),才會(huì)在超時(shí)的后沿調(diào)用func。
如果wait為0且leading為false,則func調(diào)用被推遲到下一個(gè)tick,類似于超時(shí)值為0的setTimeout。
0.1.0
func
(功能):節(jié)流的功能。
[wait=0]
(數(shù)字):將調(diào)用限制為的毫秒數(shù)。
[options={}]
(對(duì)象):選項(xiàng)對(duì)象。
[options.leading=true]
(boolean):指定在超時(shí)的前沿調(diào)用。
[options.trailing=true]
(布爾值):指定在超時(shí)的后沿調(diào)用。
(功能):返回新的限制功能。
// Avoid excessively updating the position while scrolling. jQuery(window).on('scroll', _.throttle(updatePosition, 100)); // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); jQuery(element).on('click', throttled); // Cancel the trailing throttled invocation. jQuery(window).on('popstate', throttled.cancel);
創(chuàng)建一個(gè)最多接受一個(gè)參數(shù)的函數(shù),忽略任何其他參數(shù)。
4.0.0
func
(函數(shù)):為參數(shù)加上參數(shù)的函數(shù)。
(功能):返回新的上限功能。
_.map(['6', '8', '10'], _.unary(parseInt)); // => [6, 8, 10]
創(chuàng)建一個(gè)為封裝器提供值作為其第一個(gè)參數(shù)的函數(shù)。 提供給函數(shù)的任何附加參數(shù)都會(huì)附加到提供給包裝器的參數(shù)中。 包裝被調(diào)用與創(chuàng)建的函數(shù)的此綁定。
0.1.0
value
(*):要包裝的值。
[wrapper=identity]
(功能):包裝功能。
(功能):返回新功能。
var p = _.wrap(_.escape, function(func, text) { return '<p>' + func(text) + '</p>';}); p('fred, barney, & pebbles'); // => '<p>fred, barney, & pebbles</p>'