摘要:參數待科里化的函數函數的數量返回返回科里化的新函數示例使用占位符該方法類似但其添加的行為由變更為的值,在整體構建中的默認值是,可以作為部分參數的占位符傳入。在執行時綁定的將是緩存器函數。注意緩存器函數的緩存需要暴露緩存屬性,其產物會覆蓋。
Lodash 中文文檔 (v3.10.1) - “Function” 方法
說明Translated by PeckZeg
Original Docs: Lodash v3.10.1 Docs
部分方法參考 @愚人碼頭 的關于 Underscore 的翻譯
“Function” 方法 _.after(n, func)作用與 _.before 相反,該方法創建一個在 func 被調用 n (或更多)次后才執行的函數。
參數
n (number) : 執行前 func 被調用的次數
func (Function) : 待約束的函數
返回
(Function) : 返回一個已約束的函數Returns the new restricted function.
示例
var saves = ["profile", "settings"]; var done = _.after(saves.length, function() { console.log("done saving!"); }); _.forEach(saves, function(type) { asyncSave({ "type": type, "complete": done }); }); // → 在兩次異步保存完成之后記錄 "done saving!"_.ary(func, [n=func.length])
Creates a function that accepts up to n arguments ignoring any additional arguments.
創建一個接受至少多n 個參數并忽略掉其他額外參數的函數。
參數
func (Function) : 待覆蓋參數的函數
[n=func.length] (number) : 覆蓋的數量
返回
(Function) : 返回新函數
示例
_.map(["6", "8", "10"], _.ary(parseInt, 1)); // → [6, 8, 10]_.before(n, func)
Creates a function that invokes func, with the this binding and arguments of the created function, while it’s called less than n times. Subsequent calls to the created function return the result of the last func invocation.
創建一個能夠執行 func 的函數,該包裝函數能夠正常綁定 this 和參數,該函數只能夠被調用少于 n 次,之后的調用將返回最后一次調用的結果。
參數
n (number) : 函數在調用失效之前能夠執行的次數
func (Function) : 待約束的函數
返回
(Function) : 返回一個已約束的新函數
示例
jQuery("#add").on("click", _.before(5, addContactToList)); // → 允許添加至多 4 個聯系人到列表_.bind(func, thisArg, [partials])
創建一個引用于 func 并將 thisArg 綁定至 this 的函數,額外傳入 _.bind 的參數將作為 func 的參數傳入。
_.bind.placeholder 的值,在整體構建中的默認值是 _,可以作為部分參數的占位符傳入。
注意:不像源生的 Function#bind,該方法不能為綁定的函數設置 length 屬性
參數
func (Function) : 待綁定的函數
thisArg (*) : func 綁定的 this
[partials] (…*) : 部分應用的參數
返回
(Function) : 返回一個已綁定的新函數
示例
var greet = function(greeting, punctuation) { return greeting + " " + this.user + punctuation; }; var object = { "user": "fred" }; var bound = _.bind(greet, object, "hi"); bound("!"); // → "hi fred!" // 使用占位符 var bound = _.bind(greet, object, _, "!"); bound("hi"); // → "hi fred!"_.bindAll(object, [methodNames])
為一個對象的方法綁定對象本身(會覆蓋已存在的方法)。方法名可以指定為多帶帶的參數,也可指定為一個方法名數組。如果沒有指定方法名,則會查找對象所有的可枚舉的、自有和內置函數屬性。
注意:該方法不能為綁定的函數設置 length 屬性。
參數
object (Object) : 待綁定(選擇綁定方法)的對象
[methodNames] (…(string|string[]) : 待綁定的對象方法名,可指定為多帶帶的參數,也可指定為一個方法名數組
參數
(Object) : 返回對象
示例
var view = { "label": "docs", "onClick": function() { console.log("clicked " + this.label); } }; _.bindAll(view); jQuery("#docs").on("click", view.onClick); // → 當元素被單擊時記錄 "clicked docs"_.bindKey(object, key, [partials])
Creates a function that invokes the method at object[key] and prepends any additional _.bindKey arguments to those provided to the bound function.
創建一個能夠執行位于 object[key] 方法的函數,執行時會將額外傳入 _.bindKey 的參數傳入綁定的函數。
This method differs from _.bind by allowing bound functions to reference methods that may be redefined or don’t yet exist. See Peter Michaux’s article for more details.
該方法不同于 _.bind,其允許綁定的函數重新引用一個可能還不存在的方法,查看 Peter Michaux 的文章 獲得更多的信息。
_.bind.placeholder 的值,在整體構建中的默認值是 _,可以作為部分參數的占位符傳入。
參數
object (Object) : 方法所屬的對象
key (string) : 方法的鍵
[partials] (…*) : 部分應用的參數
返回
(Function) : 返回一個已綁定的新函數
示例
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!" // 使用占位符 var bound = _.bindKey(object, "greet", _, "!"); bound("hi"); // → "hiya fred!"_.curry(func, [arity=func.length])
創建一個能夠接受 func 的一個或多個參數的函數。如果已提供所有 func 的參數,在調用時會執行 func 并返回其結果。否則則返回一個能夠接收一個或多個 func 剩余的參數的函數,以此類推,在 func.length 不能使用時,需要手動指定 func 參數的個數。
_.curry.placeholder 的值,在整體構建中的默認值是 _,可以作為部分參數的占位符傳入。
注意:該方法不能夠設置科里化后的函數的 length 屬性。
參數
func (Function) : 待科里化的函數
[arity=func.length] (number) : 函數的數量
返回
(Function) : 返回科里化的新函數
示例
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(1)(_, 3)(2); // → [1, 2, 3]_.curryRight(func, [arity=func.length])
該方法類似 _.curry 但其添加的行為由 _.partial 變更為 _.partialRight
_.curryRight.placeholder 的值,在整體構建中的默認值是 _,可以作為部分參數的占位符傳入。
注意:該方法不能夠設置科里化后的函數的 length 屬性
參數
func (Function) : 待科里化的函數
[arity=func.length] (number) : 函數的數量
返回
(Function) : 返回科里化的新函數
示例
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(3)(1, _)(2); // → [1, 2, 3]_.debounce(func, [wait=0], [options])
創建一個防反跳的函數,其將 func 的執行延遲到最后一次防反跳函數執行后的 wait 毫秒之后。防反跳函數擁有一個 cancel 方法可以取消延遲調用。其還提供一個選項對象,以待在 func 在調用超時前/后的臨界點時被調用。
注意:如果防反跳函數在等待超時的過程中已被執行且 leading 和 trailing 均指定為 true,那么 func 將僅在調用超時臨界點后被執行。
查看 David Corbacho 的文章 以獲取 _.debounce 與 _.throttle 之間區別的細節。
參數
func (Function) : 待綁定防反跳特性的函數
[wait=0] (number) : 待延遲的毫秒數
[options] _(Object)_: 選項對象
[options.leading=false] _(boolean)_: 指定是否在超時臨界點前執行
[options.maxWait] (number) : 在執行前允許的 func 最大延遲時間
[options.trailing=true] (boolean) : 指定是否在超時臨界點后執行
返回
(Function) : 返回一個防反跳的新函數
示例
// 避免在窗口尺寸不斷變化的時候進行大量計算 jQuery(window).on("resize", _.debounce(calculateLayout, 150)); // 當點擊點擊觸發時,執行 `sendMail` 時防反跳 jQuery("#postbox").on("click", _.debounce(sendMail, 300, { "leading": true, "trailing": false })); // 允許 `batchLog` 執行時允許 1 秒的防反跳調用 var source = new EventSource("/stream"); jQuery(source).on("message", _.debounce(batchLog, 250, { "maxWait": 1000 })); // 取消一個防反跳調用 var todoChanges = _.debounce(batchLog, 1000); Object.observe(models.todo, todoChanges); Object.observe(models, function(changes) { if (_.find(changes, { "user": "todo", "type": "delete"})) { todoChanges.cancel(); } }, ["delete"]); // ...在某時刻 `models.todo` 已經發生變化 models.todo.completed = true; // ...在 1 秒前已經刪除了 `models.toto` // 其已經取消了防反跳的 `todoChanges` 調用 delete models.todo;_.defer(func, [args])
推遲執行 func 直到當前調用棧被清空。此外,在執行時額外的參數將會傳入 func 。
參數
func (Function) : 待推遲執行的函數
[args] (…*) : ·執行函數時伴隨的參數
返回
(number) : 返回定時器的編號。
示例
_.defer(function(text) { console.log(text); }, "deferred"); // 在延遲一毫秒或更多毫秒之后記錄 "deferred"_.delay(func, wait, [args])
Invokes func after wait milliseconds. Any additional arguments are provided to func when it’s invoked.
在 wait 毫秒之后執行 func。在執行時任何外的參數將會傳入 func。
參數
func (Function) : 待延遲的函數
wait (number) : 延遲執行的毫秒數
[args] (…*) : 函數執行時伴隨的參數
返回
(number) : 返回定時器的編號
示例
_.delay(function(text) { console.log(text); }, 1000, "later"); // → 在 1 秒后記錄 "later"_.flow([funcs])
創建一個能夠返回執行指定函數(為創建的函數綁定 this 指針)后的結果的函數,在執行時每次成功的調用將會把返回的值傳遞給下一個函數。
參數
[funcs] (…Function) : 待執行的函數組
返回
(Function) : 返回一個新函數
示例
function square(n) { return n * n; } var addSquare = _.flow(_.add, square); addSquare(1, 2); // → 9_.flowRight([funcs])
該方法類似 _.flow,但其創建一個從右往左開始執行函數組的函數。
別名
_.backflow
_.compose
參數
[funcs] (…Function) : 待執行的函數組
返回
(Function) : 返回一個新函數
示例
function square(n) { return n * n; } var addSquare = _.flowRight(square, _.add); addSquare(1, 2); // → 9_.memoize(func, [resolver])
創建一個可以緩存 func 的執行結果的函數。如果提供了 resolver,那么其決定緩存結果的鍵將基于緩存器函數提供的參數。默認情況下,第一個參數將被指定的緩存器函數,將被強制轉換成字符串以作為緩存鍵使用。func 在執行時綁定的 this 將是緩存器函數。
注意:緩存器函數的緩存需要暴露緩存屬性,其產物會覆蓋 _.memoize.Cache。Cache 構造器將擁有一個其實例并繼承 Map,并擁有 get, has 和 set 接口。
參數
func (Function) : 擁有其輸出緩存器的函數
[resolver] (Function) : 解決緩存鍵的函數
返回
(Function) : 返回一個新的緩存器函數
示例
var upperCase = _.memoize(function(string) { return string.toUpperCase(); }); upperCase("fred"); // → "FRED" // 修改結果緩存 upperCase.cache.set("fred", "BARNEY"); upperCase("fred"); // → "BARNEY" // 替換 `_.memoize.Cache` var object = { "user": "fred" }; var other = { "user": "barney" }; var identity = _.memoize(_.identity); identity(object); // → { "user": "fred" } identity(other); // → { "user": "fred" } _.memoize.Cache = WeakMap; var identity = _.memoize(_.identity); identity(object); // → { "user": "fred" } identity(other); // → { "user": "barney" }_.modArgs(func, [transforms])
Creates a function that runs each argument through a corresponding transform function.
創建一個對各個參數運行對應的變換函數的函數。
參數
func (Function) : 待包裹的函數
[transforms] (…(Function|Function[]) : 變換參數的函數,可以指定為單個參數,也可以指定為函數數組
返回
(Function) : 返回新函數
示例
function doubled(n) { return n * 2; } function square(n) { return n * n; } var modded = _.modArgs(function(x, y) { return [x, y]; }, square, doubled); modded(1, 2); // → [1, 4] modded(5, 10); // → [25, 20]_.negate(predicate)
創建一個執行結果與斷言函數 func 相反的函數。func 斷言函數在執行時會綁定 this 并傳入創建函數的參數。
參數
predicate (Function) : 待否定的斷言函數
返回
(Function) : 返回一個新的函數
示例
function isEven(n) { return n % 2 == 0; } _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); // → [1, 3, 5]_.once(func)
創建一個只執行一次 func 的函數。重復調用函數將返回首次調用的值。func 在執行時將綁定 this 并傳入創建函數的參數。
參數
func (Function) : 待限制的函數
返回
(Function) : 返回已限制的新函數
示例
var initialize = _.once(createApplication); initialize(); initialize(); // `initialize` invokes `createApplication` once_.partial(func, [partials])
創建一個能夠執行在 func 時預先填入部分 partial 參數的函數。該方法類似于 _.bind,但其無法變更 this 綁定。
_.partial.placeholder 的值,在整體構建中的默認值是 _,可以作為部分參數的占位符傳入。
注意:該方法不能給添加了部分參數的函數設置 length 屬性。
參數
func (Function) : 待添加部分參數的函數
[partials] (…*) : 待添加的部分參數
返回
(Function) : 返回一個已添加部分參數的函數
示例
var greet = function(greeting, name) { return greeting + " " + name; }; var sayHelloTo = _.partial(greet, "hello"); sayHelloTo("fred"); // → "hello fred" // 使用占位符 var greetFred = _.partial(greet, _, "fred"); greetFred("hi"); // → "hi fred"_.partialRight(func, [partials])
該方法類似于 _.partial,但其綁定參數的順序是從右往左的。
_.partialRight.placeholder 的值,在整體構建中的默認值是 _,可以作為部分參數的占位符傳入。
注意:該方法不能給添加了部分參數的函數設置 length 屬性。
參數
func (Function) : 待添加部分參數的函數
[partials] (…*) : 待添加的部分參數
返回
(Function) : 返回一個已添加部分參數的函數
示例
var greet = function(greeting, name) { return greeting + " " + name; }; var greetFred = _.partialRight(greet, "fred"); greetFred("hi"); // → "hi fred" // 使用占位符 var sayHelloTo = _.partialRight(greet, "hello", _); sayHelloTo("fred"); // → "hello fred"_.rearg(func, indexes)
創建一個執行 func 時能夠指定傳入參數的位置的函數,即如果指定首個索引的參數為首個參數,指定的第二個索引的參數將為第二個參數,以此類推。
參數
func (Function) : 待重排參數的函數
indexes (…(number|number[]) : 重排參數的索引,可以指定為單個參數也可以指定為索引數組
返回
(Function) : 返回一個新函數
示例
var rearged = _.rearg(function(a, b, c) { return [a, b, c]; }, 2, 0, 1); rearged("b", "c", "a") // → ["a", "b", "c"] var map = _.rearg(_.map, [1, 0]); map(function(n) { return n * 3; }, [1, 2, 3]); // → [3, 6, 9]_.restParam(func, [start=func.length-1])
創建一個函數,其在執行時會綁定創建的函數的 this 綁定,并會傳入從 start 開始的參數指定為一個數組。
注意:該方法基于 rest parameter。
參數
func (Function) : 待添加剩余參數的函數
[start=func.length-1] (number) : 剩余參數的開始位置
返回
(Function) : 返回一個新函數
示例
var say = _.restParam(function(what, names) { return what + " " + _.initial(names).join(", ") + (_.size(names) > 1 ? ", & " : "") + _.last(names); }); say("hello", "fred", "barney", "pebbles"); // → "hello fred, barney, & pebbles"_.spread(func)
創建一個函數,其在執行 func 時會綁定創建的函數的 this 綁定,并傳入一個類似于 Function#apply 的數組參數。
注意:該函數基于 spread operator。
參數
func (Function) : 待展開參數的函數
返回
(Function) : 返回新的函數
示例
var say = _.spread(function(who, what) { return who + " says " + what; }); say(["fred", "hello"]); // → "fred says hello" // with a Promise var numbers = Promise.all([ Promise.resolve(40), Promise.resolve(36) ]); numbers.then(_.spread(function(x, y) { return x + y; })); // → a Promise of 76_.throttle(func, [wait=0], [options])
創建一個節流閥函數,其將 func 的執行延遲到最后一次節流閥函數執行后的 wait 毫秒之后。節流閥函數擁有一個 cancel 方法可以取消延遲調用。其還提供一個選項對象,以待在 func 在調用超時前/后的臨界點時被調用。
注意:如果節流閥函數在等待超時的過程中已被執行且 leading 和 trailing 均指定為 true,那么 func 將僅在調用超時臨界點后被執行。
查看 David Corbacho 的文章 以獲取 _.debounce 與 _.throttle 之間區別的細節。
參數
func (Function) : 待綁定節流閥特性的函數
[wait=0] (number) : 待延遲的毫秒數
[options] _(Object)_: 選項對象
[options.leading=false] _(boolean)_: 指定是否在超時臨界點前執行
[options.maxWait] (number) : 在執行前允許的 func 最大延遲時間
[options.trailing=true] (boolean) : 指定是否在超時臨界點后執行
返回
(Function) : 返回一個節流閥特性的新函數
示例
// 避免在滾動時過度更新位置 jQuery(window).on("scroll", _.throttle(updatePosition, 100)); // 當連續觸發單擊事件時,保證 5 秒內只會執行一次 `renewToken` jQuery(".interactive").on("click", _.throttle(renewToken, 300000, { "trailing": false })); // 取消一個節流閥后的調用 jQuery(window).on("popstate", throttled.cancel);_.wrap(value, wrapper)
創建一個函數,其將 value 作為第一個參數傳遞給包裝函數。任何額外的參數將附加到包裝函數之中。包裝函數會綁定創建的函數的 this 綁定。
參數
value (*) : 待包裝的值
wrapper (Function) : 包裝函數
返回
(Function) : 返回新的函數
示例
var p = _.wrap(_.escape, function(func, text) { return "" + func(text) + "
"; }); p("fred, barney, & pebbles"); // → "
fred, barney, & pebbles
"
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78439.html
摘要:中文文檔方法方法將兩個數相加。如果提供了迭代器函數,那么其將被作用于中的每個值以來生成值排序的標準。如果提供的是對象,那么將創建風格的回調函數,并在匹配給定對象的屬性的元素時返回,否則返回。 Lodash 中文文檔 (v3.10.1) - Math 方法 Translated by PeckZegOriginal Docs: Lodash v3.10.1 Docs Math 方法 _....
摘要:中文文檔方法方法創建一個包含的對象以開啟內置的方法鏈。注意該方法會修改包裝數組。返回返回強制轉為字符串的值示例執行方法鏈隊列并提取未包裝的值別名返回返回已處理的未包裝的值示例 Lodash 中文文檔 (v3.10.1) - Chain 方法 Translated by PeckZegOriginal Docs: Lodash v3.10.1 Docs Chain 方法 _(value)...
摘要:中文文檔方法方法檢查是否位于和之間包含,但不包含。參數待檢查的數值起始查詢范圍查詢范圍的結束位返回在范圍內時返回,否則返回示例從到包括中產生一個隨機數??赡艿淖钚≈悼赡艿淖畲笾抵付ǚ祷匾粋€浮點數值返回一個隨機數到間的浮點數 Lodash 中文文檔 (v3.10.1) - Number 方法 Translated by PeckZegOriginal Docs: Lodash v3.10...
摘要:參數待檢查的已整理過的數組待計算的值每次迭代執行的函數綁定的返回返回在中應該插入的索引位置示例使用迭代器函數使用回調函數簡稱該方法類似,但其返回的是插入的最大的索引位置。 Lodash 中文文檔 (v3.10.1) - Array 方法 Translated by PeckZegOriginal Docs: Lodash v3.10.1 Docs 更新日志 2015-01-02 感謝 ...
摘要:別名參數待搜索的集合每次迭代執行的函數綁定的返回返回匹配的元素或示例使用回調函數的簡稱使用回調函數的簡稱使用回調函數的簡稱該方法類似,但其從右到左迭代的所有元素。 Lodash 中文文檔 (v3.10.1) - Collection 方法 Translated by PeckZegOriginal Docs: Lodash v3.10.1 Docs 求助 翻譯文檔的難度比想象中的要難,...
閱讀 961·2023-04-26 02:49
閱讀 1172·2021-11-25 09:43
閱讀 2541·2021-11-18 10:02
閱讀 2919·2021-10-18 13:32
閱讀 1281·2019-08-30 13:54
閱讀 2074·2019-08-30 12:58
閱讀 3008·2019-08-29 14:06
閱讀 2154·2019-08-28 18:10