簡體   English   中英

Function.prototype.apply.bind用法?

[英]Function.prototype.apply.bind usages?

我非常清楚以下用法

Function.prototype.bind.apply(f,arguments)

說明-使用原始(如果存在) bind的方法在farguments (其它的第一項將被用作上下文this

此代碼可用於(例如)通過帶參數的構造函數創建新函數

示例:

function newCall(Cls) {
    return new (Function.prototype.bind.apply(Cls, arguments));
 }

執行:

var s = newCall(Something, a, b, c);

我遇到了這個: Function.prototype.apply.bind(f,arguments) //單詞交換

題 :

因為很難理解它的含義 - 在什么用法/場景中我會使用這個代碼?

這用於修復.apply的第一個參數。

例如,當您從數組中獲取最大值時,您可以:

var max_value = Math.max.apply(null, [1,2,3]);

但是你想把第一個參數固定為null ,所以你可以通過以下方式創建一個新函數:

var max = Function.prototype.apply.bind(Math.max, null);

然后你可以這樣做:

var max_value = max([1,2,3]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM