原型继承
原型继承,顾名思义,就是让原型对象中继承其他构造函数的属性和方法,直接看代码
//原型继承
function person () {
this.eyes = 2;
this.head = 1;
}
//男人和女人,都要继承人所拥有的属性
function woman () {
}
function man () {
}
woman.prototype = new person();//通过new实例化来继承,就会新开辟一个空间地址,这样修改时不影响person
woman.prototype.constructor = woman;//赋值之后,要记得让原型对象中的constructor指回构造函数
woman.prototype.baby = function() {//这里给woman的原型对象上挂载,就不会影响到man的
console.log('baby');
}
console.log(woman.prototype);
console.log(man.prototype);
> 原型链
解释:
原型链是一种查找规则,用来查找当前对象身上是否存在某个方法,如果在当前对象中找不到,就会往上寻找,而它是通过__proto__对象原型来查找的(每一个对象都会有自己的原型__proto__),最终如果还没找到,就会到null。