ES 6構文-Prototype


Prototype


PrototypeはJavaScript言語にのみ存在します.
プロトタイプは遺伝子として受け入れられる.
マシン(constructor)を作成すると、prototypeという空間が自動的に生成されます.
prototypeに値を追加すると、すべての子供が継承できます.
(Constructorは親インスタンス、その子インスタンスはConstructor)

function Machine(nic, age) {
      this.name = nic;
      this.age = age;
      this.sayHi = function() {
        console.log('안녕하세요! ' + this.name + '입니다!');
      }
    }
  
    Machine.prototype.gender = '남';
	//Constructor로 생성된 모든 object에 gender : '남'이 물려받는다.

    let people1 = new Machine('Apeachicetea', 15);
    let people2 = new Machine('kim', 20);


Machine.prototype.性別:「男」
people 1には性別属性はありませんが、people 1です.性別=出力は「男」.

その理由はJSのobject出力時の動作原理にある.
people1.性別を作成する場合、
1.JSはまずpeople 1に直接的な性別属性があるかどうかを決定し、ない場合、
2.ヒト1の親遺伝子、すなわちConstructor.プロトタイプに性別属性があるかどうかを確認します.
3.あれば実行する.

Prototypeプロパティ

  • プロトタイプは、関数内でのみこっそり生成されます.
  • 親の原型をチェックしたい場合は、
  • をチェックしてください
  • protoを使用して親を強制登録
    objectはprototypeを作成しません.
    下図のように強制的に接続できます.
  • let parents = { name : 'kim' };
    let children = {};
    children.__proto__ = parents;
    
    
    console.log(children.name);
    コンソールウィンドウ