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)
;