

今日、私はマーク・ニーダムによる素晴らしいブログ投稿を読みました
javascript:confusing 'call'と 'apply 。しばらく前に、JavaScript引数オブジェクトについてのTech Times
ニュースレターの記事を書きました。それは議論と呼ばれていました:JavaScriptの奇妙さ。それはあらゆる種類の興味深い行動を持っているからです。通話と応募の両方を使用していたことに気付きました
その記事では、違いについて話していませんでした。
まあ、それは実際には非常に簡単です。まず第一に、両方の方法が最初の議論としてThisargを期待しています。これは、関数にコンテキストを与える議論です。 javaScriptキーワードの値を決定します。単一の違いは、コールメソッドが引数が個別に指定されることを要求することです。 Applyメソッドはそれらを配列として受け取ります。構文が表示されるかどうかは明確です。
function.call(thisArg[, argument1[, argument2[, ...]]]);
ログイン後にコピー
したがって、JavaScriptの引数オブジェクトを使用している場合は、Applyメソッドを使用して任意の関数を呼び出して、既存の引数オブジェクトを配列引数として単純に渡すことができます。
それがあなたに役立つことを願っています!
Sudhamshuによる機能画像。重要性を解決できますか?
function.apply(thisArg[, argumentArray]);
ログイン後にコピー
javascriptにに適用される関数呼び出しに関するよくある質問(FAQ)
javascriptに適用される関数呼び出しと関数の主な違いは何ですか?
関数呼び出しと関数の主な違いは、JavaScriptに適用されます。 call()メソッドを使用すると、コンマで区切られた引数を個別に渡します。一方、Apply()メソッドでは、引数を配列として渡す必要があります。どちらの方法でも、関数内の「これ」の値を制御することができますが、追加のパラメーターを渡す方法は異なります。
関数呼び出しと機能の適用を使用する例を提供できますか? call()メソッドを使用して、次のようなことを行います。 // outputs:3
およびApply()メソッドを使用すると、次のようになります。 // outputs:3
どちらの場合も、「この関数では使用されていないため」「この」セットを使用してADD関数を呼び出し、1と2を引数として渡します。 function call over function applyを使用する必要がありますか?逆も同様ですか?
call()とapply()の選択は、関数への引数をどのように渡すかに依存します。引数のリストがあり、事前にそれらの数がわからない場合は、Apply()の方が配列を必要とするため、より便利になる可能性があります。引数の数がわかっている場合、または引数がまったくない場合は、Call()を使用する方が簡単です。
コンストラクター関数でcall and applyを使用できますか?ただし、複数の引数を期待するコンストラクター関数を使用してApply()を使用する場合は、注意する必要があります。 Apply()は一連の引数を取得するため、配列に正しい数の要素が含まれていることを確認する必要があります。
関数呼び出しと機能の「この」値は何ですか?これにより、関数が実行されるコンテキストを制御できます。最初の引数としてnullまたは未定義を渡す場合、関数はグローバルコンテキストで実行されます(または厳密なモードで未定義です)。代わりに、彼らは周囲の範囲から「これ」を継承します。したがって、call()またはapply()を使用して矢印関数の「この」値を変更しても効果はありません。
関数呼び出しと機能のパフォーマンスの違いは何ですか?ただし、多数の引数を取る関数を扱っている場合、Apply()は、引数の配列を反復する必要があるため、わずかに遅くなる可能性があります。これは、異なるタイプのオブジェクトを持つ1つのオブジェクトタイプに存在するメソッドを使用する場合に役立ちます。
コールまたは機能を機能させるために関数が多すぎるか、あまりにも少なすぎると適用されるとどうなりますか?引数が少なすぎる場合、欠落している引数は未定義に設定されます。
以上がfunction.callとfunction.applyの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。