ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript における Function.prototype.apply と Function.prototype.call の違い

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

WBOY
リリース: 2023-08-24 13:05:02
転載
1517 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート