JavaScriptの4つの呼び出しモードとthisの例を紹介します.

1421 ワード

JavaScriptの呼び出しは、宣言時に定義されたフォーム以外に、各関数は2つの追加パラメータを受け入れる:thisとargments、thisはオブジェクト指向プログラミングにおいて非常に重要であり、呼び出しモードに依存する.
JavaScriptには4つの呼び出しモードがあり、メソッド呼び出しモード、関数呼び出しモード、ビルダー呼び出しモード、およびappy呼び出しモードがあります.これらのモードは初期化の鍵パラメータthisに差異がある.
方法コールモード:関数がオブジェクトの属性として保存されている場合、それを方法と呼び、一つの方法が呼び出された場合、thisはオブジェクトに結合されます.式を呼び出すと、属性取得式(つまり、1つの.点式または[スクリプト]の下付き表現)が含まれている場合、それは一つの方法として呼び出されます.
 
  
var myObject = {
value: 0;
increment: function(inc){
this.value += typeof inc === 'number' ? inc : 1;
}
};

myObject.increment();
document.writeln(myObject.value);//1

myObject.increment(2);
document.writeln(myObject.value);//2
この方法はオブジェクトにthisを使用してアクセスできますので、オブジェクトから値を取ったり、変更したりできます.thisのバインディングは呼び出し時に発生します.このスーパー遅い結合は関数をthisの高さに多重化できるようにした.thisによって彼らの所属する文脈を得ることができる方法を公共の方法といいます.
関数コールモード:関数がオブジェクトの属性ではない場合、var sum=add(3,4)を呼び出す関数として使用されます.sum値は7です
このモードで関数が呼び出されると、thisはグローバルオブジェクトに紐付けされます.
コンストラクションモード:JavaScriptはプロトタイプに基づいて継承された言語です.これは、直接に他のオブジェクトから属性を継承することができることを意味します.この言語は類別がない.
関数の前にnewを持って呼び出したら、関数に接続されたプロトタイプのメンバーを隠す新しいオブジェクトを作成します.そして、thisはその新しいオブジェクトにバインドされます.
アプリ呼び出しモード:JavaScriptは関数式のオブジェクト指向プログラミング言語ですので、関数はメソッドを持つことができます.
applyメソッドを使用してパラメータ配列を構築し、関数を呼び出します.これはまた、私たちがthisの値を選択することを許可します.
apply法は2つのパラメータを受け入れ,最初はthisの値にバインディングされ,2番目はパラメータ配列である.