インスタンスのプロパティ/メソッドコンストラクタJSプロトタイプオブジェクト(プロトタイプ)との関係、上

オリジナルリンク: https://segmentfault.com/a/1190000016951069

コンストラクタ関数:関数は、キーワードの新しいインスタンスを作成することができます。;区別の便宜のために、一般に大文字
コンストラクタとの1対1の対応を形成し、影の関係等;特別なオブジェクト、自動的に生成されたコンストラクタの作成:プロトタイプオブジェクトは、
例:オブジェクトのコンストラクタ例のうち;


  その内部で定義されたコンストラクタ、プロパティおよびメソッドを定義する場合(「{」および「}」)。ときに我々は、キーワードの新しいインスタンスのコンストラクタのため。これらの特性の例は、現在のインスタンスに起因する、コピーコンストラクタのコピーを持っています。異なるインスタンス間でのプロパティとメソッドは、以下の例では完全に独立しています:

機能人(名前、年齢){
     この .nameの= 名前;
    この .age = 年齢;
    この .sayName = 関数(){ 
           アラート(この.nameの)。
    }。
} 
 
VARの HL = 新しい( "出身"、18人)。
VaRの JJ = 新しい人( "加加"、20 ); 
 
HL.sayName(); // 出身 
)(JJ.sayNameを。// 加加
 
HL.name =「出身」
 
HL.sayName(); // 出身 
JJ.sayName(); // 加加

  私たちは、「JJ」の名前の名前「HL」を変更する「JJ」は、新しい人の創出によって変更されることはありません、「HL」を2つのオブジェクトをインスタンス化します。

  プログラムが実行されると、自動的にそれに関連するプロトタイプオブジェクト(プロトタイプ)を生成します。そして、自動的にコンストラクタにプロパティを追加します。プロトタイプは、このプロパティは、プロトタイプオブジェクトへのポインタです。同時に、プロトタイプオブジェクトにプロパティを追加します。コンストラクタは、プロパティは、対応するコンストラクタへのポインタです。この時点では、プロトタイプオブジェクトは、これらのデフォルトのメソッドとプロパティが含まれます。

  例として、プロトタイプオブジェクトとの暗黙のフォーム多くの関係のすべてのインスタンスが完了した後。すべての例は、もちろん、コンストラクタを含み、プロトタイプオブジェクトのプロパティとメソッドを共有しています。プロトタイプオブジェクトがプロパティまたはメソッドを追加する場合には、いずれかのインスタンスによってアクセス可能なすべてのインスタンスによって共有されます。方法または属性プロパティまたはメソッドプロトタイプオブジェクトのインスタンス名は、プロトタイプオブジェクト上のプロパティまたはメソッドの優先順位の例と一致している場合:

// プロパティとメソッドを追加する一般的 
Person.prototype.sex = "ガール" ; 
Person.prototype.saySex = 関数(){ 
   アラート(この.sex); 
}; 
アラート(HL.saySex === JJ.saySex)。// trueに 
アラート(HL.saySex === Person.prototype.saySex); // trueに
 
Person.prototype.stature = 165 ; 
アラート(HL.stature); // 165 
アラート(JJ.stature); // 165 
 
/ / オブジェクト変更またはプライベート属性を追加した例です。
= 160 HL.stature ; 
アラート(HL.stature); // 160 
アラート(JJ.stature); //165は、
 
// オブジェクトの私有財産のインスタンスを削除します。
削除HL.stature; 
Person.prototype.stature = 170 ; 
アラート(HL.stature); // 170 
アラート(JJ.stature); // 170。

  例えば、一例として、オブジェクトにアクセスして比較する性別saySexプロパティおよびメソッドを高めるためにプロトタイプオブジェクト、今回「HL」と「JJ」、またプロトタイプオブジェクト自体は、比較結果トゥーレをsaySex、プロトタイプは、次に、得られましたオブジェクトの属性には、プロトタイプオブジェクトの身長のプロパティにアクセスすること、身長を増加し、この中に今回「HL」と「JJ」はプロパティではありません。私たちは一人で「HL」の後に身長プロパティを追加している場合は、「HLは、」プロトタイプオブジェクトへのアクセスではなく、財産を所有し、「HL」へのアクセス。私たちは、「削除」のキーワードで「HL」独自のプロパティを削除すると、再びアクセスしたとき、彼はプロトタイプオブジェクトのプロパティを再訪に戻りました。


概要:コンストラクタのプロパティとメソッドが宣言され、一度だけ完成インスタンス化定義しました。オブジェクト自身のプロパティとメソッドのコンストラクタの例としては、いかなる関係がありません。例えば、オブジェクトプロトタイプオブジェクトが「スペアタイヤ」の関係を形成するために、オブジェクトのプロパティまたはメソッドによってアクセスされるときに、プログラムオブジェクト自体が優先プロパティまたはメソッドを検索し、メソッドまたは属性が存在しないオブジェクトのプロトタイプのみアクセスされます。

  同じ必要性の複数のインスタンスは、プロパティやメソッドを使用する際に、この方法では、我々は独立して、メモリを無駄に存在する複数のオブジェクトに同じ時間を避けるためにプロトタイプオブジェクト、プロパティまたはメソッドに入れなければなりません。

 

おすすめ

転載: www.cnblogs.com/wangjing-web/p/11917041.html