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

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

Dec 14, 2024 am 07:16 AM

`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() 提供更簡潔的替代方案。

範例

1

2

3

function greet(name, occupation) {

  console.log(`Hello, my name is ${name} and I'm a ${occupation}.`);

}

登入後複製

考慮以下函數:

1

2

greet.apply(undefined, ["John", "engineer"]);

greet.call(undefined, "Mary", "doctor");

登入後複製

使用apply() 呼叫函數並call():

1

2

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中文網其他相關文章!

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

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在JavaScript中替換字符串字符 在JavaScript中替換字符串字符 Mar 11, 2025 am 12:07 AM

在JavaScript中替換字符串字符

自定義Google搜索API設置教程 自定義Google搜索API設置教程 Mar 04, 2025 am 01:06 AM

自定義Google搜索API設置教程

示例顏色json文件 示例顏色json文件 Mar 03, 2025 am 12:35 AM

示例顏色json文件

8令人驚嘆的jQuery頁面佈局插件 8令人驚嘆的jQuery頁面佈局插件 Mar 06, 2025 am 12:48 AM

8令人驚嘆的jQuery頁面佈局插件

構建您自己的Ajax Web應用程序 構建您自己的Ajax Web應用程序 Mar 09, 2025 am 12:11 AM

構建您自己的Ajax Web應用程序

什麼是這個'在JavaScript? 什麼是這個'在JavaScript? Mar 04, 2025 am 01:15 AM

什麼是這個'在JavaScript?

通過來源查看器提高您的jQuery知識 通過來源查看器提高您的jQuery知識 Mar 05, 2025 am 12:54 AM

通過來源查看器提高您的jQuery知識

10張移動秘籍用於移動開發 10張移動秘籍用於移動開發 Mar 05, 2025 am 12:43 AM

10張移動秘籍用於移動開發

See all articles