ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript における Function.prototype.apply と Function.prototype.call の違い

JavaScript における Function.prototype.apply と Function.prototype.call の違い

WBOY
WBOY転載
2023-08-24 13:05:021285ブラウズ

JavaScript 中 Function.prototype.apply 和 Function.prototype.call 的区别

Function.prototype.applyFunction.prototype.call は、特定の this 値を使用して関数を呼び出すことができるメソッドです。パラメーター。 2 つの主な違いは、apply ではパラメータの配列を渡すことができるのに対し、call ではパラメータを 1 つずつリストする必要があることです。

Function.prototype.apply

​​>

Function .prototype.apply は、特定の this 値と引数配列を使用して関数を呼び出すことができるメソッドです。

構文

apply を使用するための構文は -

func.apply(thisArg, argsArray)

です。ここで、thisArg は関数内で this として使用される値です。 argsArray は、関数に渡される引数の配列です。

次は、apply -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.apply(null, ["John"])
   </script>
</body>
</html>

出力

を使用して関数を呼び出す例です。上記のコードは次の出力を出力します。

Hello, John!

ご覧のとおり、この値を設定したくないため、thisArg に null を渡しました。パラメータ「John」を含む argsArray の配列を渡しました。結果は、name パラメーターとして「John」を使用して、sayHello 関数を呼び出します。

Function.prototype.call

Function.prototype.call は、特定の this 値とパラメーター リストを使用してメソッドを呼び出すことができる関数です。

構文

call を使用するための構文は

func.call(thisArg, arg1, arg2, ...)

です。thisArg は関数内で this として使用される値です。 arg1、arg2、 ... は、関数に渡されるパラメーターです。

call を使用した例は次のとおりです 関数の呼び出し -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.call(null, ["John"])
   </script>
</body>
</html>

出力

上記のコードは次の出力を出力します。 。

Hello, John!

ご覧のとおり、この値を設定したくないため、thisArg に null を渡しました。 「John」を唯一のパラメータとして使用します。結果は、name パラメーターとして「John」を使用して、sayHello 関数を呼び出します。

Function.prototype.apply と Function.prototype.call の違い

次の表は、Function.prototype.apply と Function.prototype.call-

## の主な違いを示しています。 #基本 Function.prototype.applyFunction.prototype.callDefinition このメソッドを使用すると、特定の パラメータパラメータの配列を渡します。 パラメータリストを渡します。 速度 新しい関数を作成しないため、 em>呼び出しごとに新しい関数が作成されるため、 使用法 このチュートリアルでは、apply
このメソッドを使用すると、特定の this 値と引数配列を使用して関数を呼び出すことができます。

this 値と引数リストを使用して関数を呼び出すことができます。

を呼び出すよりも高速です。

apply よりも遅くなります。

    ##配列を
  • ## に追加します#ループを使用しない組み込み関数の作成
#リンクされたオブジェクトのコンストラクター。
  • #匿名関数を呼び出します。

  • 関数を呼び出し、「this」のコンテキストを指定します。

  • 最初の引数を指定せずに関数を呼び出します。

結論

の違いについて説明しました。 #>> メソッドを呼び出します。 2 つの主な違いは、引数の受け入れ方法です。これらのメソッドにはさまざまな用途があります。上の表で使用状況の行を表示できます。

以上がJavaScript における Function.prototype.apply と Function.prototype.call の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。