JSプロトタイプチェーン引継ぎ

3249 ワード

ES 6/ES 2015はclassのキーワードを導入していますが、それは文法飴にすぎません.JSのクラス実現はまだ原型に基づいています.
JSには一つの構造しかありません.対象_各インスタンスオブジェクトは、彼の構造関数のプロトタイプオブジェクトを指します.プロトタイプオブジェクトは、自分のプロトタイプオブジェクトがあります.
プロトタイプチェーンの継承
jsオブジェクトには原型のオブジェクトを指すチェーンがあります.
customObject.[Prottype]と構造関数nullfuncはどう違いますか?前者はオブジェクトのプロトタイプオブジェクトを指し、後者は構成関数によって作成された実力オブジェクトの「Prottype」がprototypefunc属性を指す.
let fun = function() {
	this.prop1 = 1;
	this.prop2 = 2;
}

let obj = new fun(); // obj object is {prop1: 1, prop2: 2}
//	            
obj.prototype.prop3 = 3;
obj.prototype.prop4 = 4;

// prop1 & prop2  obj     
console.log(obj.prop1);
console.log(obj.prop2);
//	prop3 & prop4   obj    
//	           obj.[[Proptype]]    
console.log(obj.prop3);
console.log(obj.prop4);
JSオブジェクト