首頁 >web前端 >js教程 >JavaScript 中的 Call 與 Apply:這些函式呼叫方法有何不同?

JavaScript 中的 Call 與 Apply:這些函式呼叫方法有何不同?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-15 11:05:17726瀏覽

Call vs. Apply in JavaScript: How Do These Function Invocation Methods Differ?

函數呼叫方法:call 與 apply

在 JavaScript 中,call 和 apply 方法可讓您使用自訂上下文和參數呼叫函數。雖然這兩種方法具有相同的目的,但它們在處理參數傳遞的方式上有所不同。

call 與apply:參數處理

主要區別在於參數的處理方式提供給函數:

  • 調用:每個參數都被傳遞
  • apply: 參數作為陣列傳遞。

要記住這種區別,助記符「A 代表數組,C 代表逗號」可以是有用。

語法:

  • 呼叫:

    theFunction.call(valueForThis, arg1, arg2, ...)
  • 呼叫:
  • theFunction.apply(valueForThis, arrayOfArgs)
  • 申請:

function theFunction(name, profession) {
  console.log("My name is " + name + " and I am a " + profession + ".");
}

theFunction("John", "fireman");
theFunction.apply(undefined, ["Susan", "school teacher"]);
theFunction.call(undefined, "Claude", "mathematician");

範例:範例:

在此範例中,

call

方法與逗號分隔的參數一起使用,而 apply 方法則採用參數數組。

theFunction.call(undefined, ...["Matthew", "physicist"]);

擴充運算子:

在 ES6 及更高版本中,擴充運算子可用於將陣列作為參數傳遞給

call

方法:
  • 效能與使用建議:
  • call 和 apply 之間沒有顯著的效能差異。選擇使用哪一種方法取決於具體情況:
  • 如果參數已經在陣列中,使用apply可以簡化程式碼。 如果您需要為
  • this
上下文傳遞自訂值,則call 和apply 都可以在將函數作為物件使用時,使用call 通常被認為是良好的做法,而在處理參數數組時使用apply 。

以上是JavaScript 中的 Call 與 Apply:這些函式呼叫方法有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn