js高级——原型链结构

1、原型链:
    ·每个构造函数都有原型对象
    ·每个对象都会有构造函数
    ·每个构造函数的原型都是一个对象
    ·那么这个原型对象也会有构造函数
    ·那么这个原型对象的构造函数也会有原型对象
    ·这样就会形成一个链式结构,就称为原型链

2、原型链结构的基本形式
function Person(){

}

var p = new Person();


js高级——原型链结构


2、属性搜索原则
(1)当访问一个对象的成员的时候会先在自身找有没有,如果找到就直接使用
(2)如果没有找到就去当前对象的原型对象中去查找,如果找到了就直接使用
(3)如果没有找到就去原型对象的原型对象中去查找,如果找到了就直接使用
(4)如果没有找到就继续向上查找直到Object.prototype,如果还是没有就报错
js高级——原型链结构


3、原型继承的概念:通过修改原型链结构实现的继承

4、复杂的原型链
//动物 --> 人 --> 老师 --> 坏老师
function Animal(){
    this.gender = "male";
}

Human.prototype = new Animal();

function Human(){
    this.actionWay = "走路";
}

Teacher.prototype = new Human();

function Teacher(){
    this.skill = "教书";
}

BadTeacher.prototype = new Teacher();

function BadTeacher(){
    this.name = "文章";
}

var t = new BadTeacher();
console.log(t);
js高级——原型链结构