prototype(原型)
function Person(nick, age){
this.nick = nick;
this.age = age;
}
Person.prototype.sayName = function(){
console.log(this.nick);
}
var p1 = new Person();
p1.sayName();
我们通过函数定义了类Person,类(函数)自动获得属性prototype
每个类的实例都会有一个内部属性proto,指向类的prototype属性
通过图示我们可以看出一些端倪,实例可以通过__prop__
访问到其类型的prototype属性,这就意味
着类的prototype对象可以作为一个公共容器,供所有实例访问。
原型链
我们刚才的问题可以通过这个手段解决
所有实例都会通过原型链引用到类型的prototype
prototype相当于特定类型所有实例都可以访问到的一个公共容器
重复的东西移动到公共容器里放一份就可以了
范例
function People (name){
this.name = name;
}
People.prototype.walk = function(){
console.log(this.name + ' is walking');
}
var p1 = new People('饥人谷');
var p2 = new People('前端');
这时候我们对应的关系是这样的