ホームページ > ウェブフロントエンド > jsチュートリアル > `call()` と `apply()`: いつどの関数呼び出しメソッドを使用するか?

`call()` と `apply()`: いつどの関数呼び出しメソッドを使用するか?

Mary-Kate Olsen
リリース: 2024-12-14 07:16:14
オリジナル
964 人が閲覧しました

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

call と apply による関数呼び出し

関数を呼び出すとき、プログラマは Function.prototype.apply() または Function を使用するオプションに遭遇することがよくあります。 .prototype.call()。この記事では、両方のメソッドの違いと使用例について説明します。

apply() と call()

根本的な違いは、関数の引数の処理方法にあります。

  • apply(): 引数をarray.
  • call(): 引数を明示的にリストする必要があります。 commas.

構文

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

ニーモニック

違いを覚えるには:

  • A 用array: apply() は引数の配列を受け取ります。
  • C for comma: call() はカンマで区切られた引数を必要とします。

使用するケース

  • call(): 特定の数の引数を渡す場合に便利です。
  • apply(): 以下に最適です。引数がすでに配列に格納されているか、動的なものが必要なシナリオ

パフォーマンスに関する考慮事項

どちらのメソッドも同様のパフォーマンス特性を持っています。 ES6 以降では、スプレッド演算子 (...) を call() で使用でき、apply() のより簡潔な代替手段を提供します。

次の関数を考えてみましょう:

function greet(name, occupation) {
  console.log(`Hello, my name is ${name} and I'm a ${occupation}.`);
}
ログイン後にコピー

apply() と を使用した関数の呼び出しcall():

greet.apply(undefined, ["John", "engineer"]);
greet.call(undefined, "Mary", "doctor");
ログイン後にコピー

これは出力します:

Hello, my name is John and I'm a engineer.
Hello, my name is Mary and I'm a doctor.
ログイン後にコピー

以上が`call()` と `apply()`: いつどの関数呼び出しメソッドを使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート