Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの関数スコープとコンテキストを理解していますか?


コンテキストとスコープはJavaScriptで同じではありません。関数呼び出しの呼び出しには、スコープとコンテキストの両方があります。

スコープ

変数のスコープは、変数が定義されているプログラムの領域です。 JavaScript変数には2つのスコープしかありません。グローバル変数にはグローバルスコープがあります。つまり、JavaScriptコードのどこにでも定義できます。ローカル変数は、それが定義されている関数内でのみ表示されます。関数パラメーターは常にその関数に対してローカルです。

コンテキスト コンテキストは、関数がどのように呼び出されるかを示しています。例を見てみましょう-

var ob1 = {
   display: function() {
      return this;
   }
};
ob1.display() === ob1;

オブジェクトのメソッドとして関数を使用できる場合、上記はtrueを返します。メソッドが呼び出されるオブジェクトに設定されている「this」コンテキストを見ました。


  1. JavaScriptの関数プロトタイプ

    JavaScriptで作成された関数には、JavaScriptエンジンによって追加されたプロトタイププロパティが常にあります。プロトタイププロパティは、デフォルトでコンストラクタプロパティを含むオブジェクトです。関数protoypeには、-からアクセスできます。 functionName.prototype オブジェクトが関数コンストラクターを使用して作成されている場合、このプロトタイププロパティを使用して、その関数コンストラクターによって作成されたオブジェクト間でメソッドまたはプロパティを共有できます。 以下は、JavaScriptの関数プロトタイプのコードです- 例 <!DOCT

  2. JavaScriptでの関数の借用。

    call()、apply()、bind()は、JavaScriptのメソッドを借用するために使用されます。 以下は、JavaScriptでメソッドを借用するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &