js高级——原型链结构
1、原型链:
·每个构造函数都有原型对象
·每个对象都会有构造函数
·每个构造函数的原型都是一个对象
·那么这个原型对象也会有构造函数
·那么这个原型对象的构造函数也会有原型对象
·这样就会形成一个链式结构,就称为原型链
2、原型链结构的基本形式
function
Person(){
}
var
p =
new Person();
2、属性搜索原则
(1)当访问一个对象的成员的时候会先在自身找有没有,如果找到就直接使用
(2)如果没有找到就去当前对象的原型对象中去查找,如果找到了就直接使用
(3)如果没有找到就去原型对象的原型对象中去查找,如果找到了就直接使用
(4)如果没有找到就继续向上查找直到Object.prototype,如果还是没有就报错
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);