首頁 > web前端 > js教程 > `call()` 與 `apply()`:何時使用哪一種函式呼叫方法?

`call()` 與 `apply()`:何時使用哪一種函式呼叫方法?

Mary-Kate Olsen
發布: 2024-12-14 07:16:14
原創
959 人瀏覽過

`call()` vs. `apply()`: When to Use Which Function Invocation Method?

使用call 和apply 進行函數呼叫

呼叫函數時,程式設計師常會遇到使用Function.prototype.apply() 或Function 的選項.prototype.call()。本文探討了這兩種方法的差異和用例。

apply() 與 call()

根本區別在於它們如何處理函數參數:

  • apply():接受參數為array.
  • call():需明確列出參數,參數之間用逗號。

語法

Method Syntax
apply() function.apply(thisArg, [arg1, arg2, ...])
call() function.call(thisArg, arg1, arg2, ...)

助記符

要記住區別:

  • 要記住區別:
  • A 為array: apply() 接受一個參數陣列。

C 表示逗號: call() 需要用逗號分隔參數。

  • 使用案例
  • call():在傳遞特定數量的參數時有用。

apply():非常適合參數已經儲存在陣列中或需要動態的場景綁定。

效能注意事項

兩種方法具有相似的效能特性。在 ES6 及更高版本中,擴充運算子 (...) 可以與 call() 一起使用,為 apply() 提供更簡潔的替代方案。

範例
function greet(name, occupation) {
  console.log(`Hello, my name is ${name} and I'm a ${occupation}.`);
}
登入後複製

考慮以下函數:
greet.apply(undefined, ["John", "engineer"]);
greet.call(undefined, "Mary", "doctor");
登入後複製

使用apply() 呼叫函數並call():
Hello, my name is John and I'm a engineer.
Hello, my name is Mary and I'm a doctor.
登入後複製
使用apply() 呼叫函數並call(): 這將輸出:

以上是`call()` 與 `apply()`:何時使用哪一種函式呼叫方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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