呼び出しと適用: 関数呼び出しの違いを明らかにする
JavaScript では、関数の呼び出しは Function を使用したさまざまな方法で実行できます。 .prototype.apply() と Function.prototype.call() は 2 つの有力な選択肢です。ただし、これらのメソッドには、さまざまなシナリオでの適合性に影響を与える重要な違いがあります。
機能の類似性
呼び出しと適用には共通の目的があります。つまり、呼び出しを容易にするということです。関数。ただし、引数を処理する方法は大きく異なります。
apply (ValueForThis, ArrayOfArgs)
apply() メソッドには 2 つの引数が必要です: バインドされる値関数内の "this" キーワードと、関数が受け取る必要がある引数を含む配列に追加します。 apply() メソッドは、配列を関数に渡す前に個々の引数に展開します。
call (ValueForThis, Arg1, Arg2, ...)
対照的に、call() メソッドを使用すると、通常の関数呼び出しと同様に、引数を個別のパラメーターとして渡すことができます。 「this」キーワードにバインドされた値は最初の引数として指定され、その後に関数に必要な残りの引数が続きます。
パフォーマンスに関する考慮事項
ベンチマークにより、その呼び出しが明らかになりますほとんどのシナリオで適用よりもわずかに高速です。これは、呼び出しは引数の展開に伴う追加の処理を必要としないため、オーバーヘッドがわずかに低く動作するためです。
実際的な考慮事項
呼び出しと呼び出しの区別apply は主に、さまざまなタイプの引数を処理するための適合性によって決まります。
使用例
提供されたコード スニペットは、呼び出しと呼び出しの両方の使用法を示しています。 apply:
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"); theFunction.call(undefined, ...["Matthew", "physicist"]); // using the spread operator
呼び出しと適用のニュアンスを理解すると、開発者は引数の性質とパフォーマンスの考慮事項に基づいてアプローチを調整し、関数を効果的に呼び出すことができます。
以上がJavaScript での呼び出しと申請: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。