原型、原型链
原型:js每个对象都有一个__proto__属性,它所对应的就是这个对象的原型。Js中的函数对象,除了proto还有一个prototype属性。当函数对象作为构造函数创建实例时,它的prototype就作为实例对象的proto。写在原型中的方法会被他创建出来的对象继承。
原型链:当一个对象调用的属性或者方法自身不存在时,他就是通过自己的proto找到关联的前辈prototype,如果找不到就在他prototype的proto找prototype,一直网上找,直到找到了或者undefined为止,这一系列操作,我们就叫他原型链。
function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.say=function(){
console.log(this.name+"sadhfsadfsdafsaf");
}
function Coder(name,age){
//调用父类的Person.call()
Person.call(this,name,age);
}
//继承父类的方法
Coder.prototype=new Person();
//coder的原型就是人
var c1=new Coder("zs",20);
//coder的原型对象下的constructor属性指向coder
Coder.prototype.constructor=Coder;