知识点:
-
通过原型链来实现子类和父类的关联,通过instanceof 来检测两者之间关系。
obj instanceof constructor //可以检测objd的constructor.prototype是否在obj的原型链上
构造函数(prototype)和实例对象(__proto__)都指向构造函数的原型对象
原型对象中constructor指向构造函数。
核心:
若使子类的实例原型链上有父类的prototype,可以将子类的prototype设置为父类的实例(更好的是设为父类prototype的副本)
function Super(name){
this.name=name;
}
Super.prototype.say=function(){
alert('g');
}
function Sub(name,age){
Super.call(this,name);
this.age=age;
}
inherit(Sub,Super);
Sub.prototype.talk=function(){
alert('g');
}
function inherit(sub,sup){
var prototype=Object.create(sup.prototype);
prototype.constructor=sub;
sub.prototype=prototype
}