原型链?
在博客园看到的一篇文章,感觉描述很清晰,为了防止自己忘记,特此理解性的记录下来,也供大家一起学习,如有不对之处请拍案指出,谢谢。
原型链是针对构造函数的,比如我先创建了一个 Plane 构造函数,然后给这个函数赋予 fly 的方法,我再创建一个 Fighter 构造函数并让其继承 Plane 对象,然后当我想要访问 new 出来这个对象的方法或者属性时,但是发现我并没有给他这些方法或属性,那么它就会往上(向创建出它的函数中)查找,这个查找的过程就叫做原型链。
//创建一个飞机的构造函数
function Plane(color) {
this.color = color;
}
Plane.prototype.fly = function() {
console.log('flying');
}
// 再创建一个战斗机的构造函数
function Fighter() {
this.bullets = [];
}
// new一个 Fighter原型对象使其继承 Plane,也就是打通原型链
Fighter.prototype = new Plane('blue');
// Fighter特有方法
Fighter.prototype.shoot = function() {
console.log('biu biu biu');
}
var fighter1 = new Fighter();
console.log(fighter1.color);// blue
fighter1.fly();// flying
///代码源自腾讯课堂Next特训班
原型链继承关系
图片源自腾讯课堂Next特训班