原型
每一个对象都有原型(prototype),原型可以当做是共有属性,
意思就是由这个对象构造出来的其他对象都可以继承该原型的共有属性。
Obj.prototype.name = 'XiCan';
function Obj(){
}
var obj = new Obj()
//创建出来的obj对象在构造函数Obj里面没有name属性,就会上Obj的原型上面找name属性
//找到之后结果就是XiCan
//如果构造函数里面有他自己的name属性,就不会找原型上面的,自上原则。比如:
Obj.prototype.name = 'XiCan';
function Obj(){
this.name = 'Y,zhou';
}
var obj = new Obj()
原型链
原型链就相当于一个链式结构,和继承相关。
例:
Grfather.prototype.abc = '一天';
function Grfather(){
}
var grfather = new Grfather();
Father.prototype = grfather;
function Father(){
}
var father = new Father();
Son.prototype = father;
function Son(){
}
var son = new Son();
//当我要访问son上面有没有abc的时候就会自下向上去查找继承关系有没有abc这个属性
//属性可以是方法也可以是函数也可以是数组等