JSプロトタイプチェーンnewとObject.reat()はコードと継承を区別する方法です.


/*var F=function(){}
 var son=new F();
 console.log(son.__proto__==F.prototype)//true*/




/* var F={a:1}
 var son=Object.create(F);
 console.log(son.__proto__);  {a:1}*/






/*var F=function(){this.a=3; };
 var f=new F();
 var son=Object.create(F.prototype);
 console.log(son.__proto__== F.prototype);//true*/
newはその対象です.プロト属性はこのクラスのプロトタイプを指し、createは表示の方向を直接指します.
次の相続を実現します.第一種類:
Cat.prototype=new Animal();//     new       _ _proto_ _       prototype            Cat.prototype.__proto__=Animal.prototype
認証:
function Cat(){}
function Animal(){}
Cat.prototype=new Animal();
console.log(Cat.prototype.__proto__==Animal.prototype)//true
この方法の不足は、継承時に作成したオブジェクトを常に初期化するということです.だから私たちは直接に:
Cat.prototype.__proto__==Animal.prototype
これが私たちの第二の方法です.
第三種類:コールでお願いします
function Animal(name){
    this.name = name;
    this.showName = function(){
        console.log(this.name);
    }
}

function Cat(name){
    Animal.call(this, name);
}

var cat = new Cat("Black Cat");
cat.showName();//Black Cat