jsの中の原型の簡単な理解

1074 ワード

jsにおける原型の理解
  • プロトタイプ概念
  • 原型の引用方式
  • オブジェクトの私有属性__uプロト.オブジェクトの原型を指す
  • プロトタイプチェーン概念
  • 原型概念
    各JavaScriptオブジェクト(nullを除く)は他のオブジェクトと関連しています.もう一つのオブジェクトはオブジェクトの原型です.各オブジェクトは原型オブジェクトから属性を継承します.
    原型の引用方式
    オブジェクトの直接量によって作成されたすべてのオブジェクトは同じ原型オブジェクトを有し、JavaScriptコードObject.prototypeによって原型オブジェクトへの参照が得られます.作成したオブジェクトのプロトタイプをキーワードnewとコンストラクタで呼び出します.これはコンストラクタのプロトタイプ属性の値です.
    オブジェクトの私有属性プロト.オブジェクトの原型を指す
    let o = {};
    o.__proto__  = Object.prototype;
    
    function Person = function() {
    	this.age = 18;
    	this.name = 'Li Hua'
    }
    let person = new Person()
    person.__proto__  = Person.prototype
    
    プロトタイプチェーン概念
    プロトタイプがない対象は少ないです.Object.prototypeもその中の一つです.属性は引き継がれません.他のオブジェクトはすべて普通のオブジェクトで、通常のオブジェクトは原型を持っています.すべての内蔵構造関数はObject.prototypeから継承されたプロトタイプを持っています.例えば、Date.prototypeの属性はObject.prototypeから継承されているので、new Date()によって作成されたDateオブジェクトの属性は、同時にDate.prototypeとObject.prototypeから継承されます.この一連のリンクの原型オブジェクトはすべてのプロトタイプチェーンです.『JavaScript権威ガイド』から抜粋する.
    オブジェクト自体に属性が見つからない場合、オブジェクトの私有属性を検索します.プロト.疑似オブジェクトという名前が付いていますが、偽オブジェクトの中にないと上に検索し続けます.