首頁 > web前端 > js教程 > JavaScript `apply()` 與 `call()`:我什麼時候該使用哪一個?

JavaScript `apply()` 與 `call()`:我什麼時候該使用哪一個?

Linda Hamilton
發布: 2024-12-22 19:07:14
原創
889 人瀏覽過

JavaScript `apply()` vs. `call()`: When Should I Use Which?

JavaScript 中的呼叫方法:探索apply() 與call()

在JavaScript 中呼叫函數時,有兩個主要方法:你的處置:apply() 和call()。兩者都允許您使用指定的 this 值執行函數,但它們的參數傳遞方式有所不同。

apply(thisValue,argumentsArray)

  • 建構來自提供的argumentsArray的陣列。
  • 使用指定的thisValue和陣列的元素作為單獨的元素來呼叫函數參數。
  • 範例:
const func = function() {
    console.log("Hello world!");
};
func.apply(null, ["John", 35]); // Invokes "Hello world!" and logs "John" and 35.
登入後複製

call(thisValue, arg1, arg2, ...argN)

  • 將參數視為單獨的參數。
  • 使用指定的thisValue 和單獨提供的參數呼叫函數
  • 範例:
func.call(null, "John", 35); // Invokes "Hello world!" and logs "John" and 35.
登入後複製

助記符:

  • 應用: A 表示陣列參數。
  • 呼叫:C 以逗號分隔參數。

效能差異:

  • apply() 與 apply() 之間的效能差異通常可以忽略不計call()。
  • 但是,在處理大量參數時,apply() 可能會稍微快一些。

最佳用例:

  • 使用apply(): 當你有一個要傳遞的參數數組時到函數,尤其是當參數數量事先未知時。
  • 使用 call(): 當您想要將單一參數傳遞給函數並更好地控制它們的順序時。

ES6 新增內容:

  • 中ES6,您可以將擴充運算子與call() 結合使用,將陣列擴展為各個參數。
  • 範例:
func.call(null, ...["John", 35]); // Same as func.apply(null, ["John", 35]).
登入後複製

以上是JavaScript `apply()` 與 `call()`:我什麼時候該使用哪一個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板