对JS原型的理解
var people = {
name: 'xiaoliu'
};
对于JS中所有对象,都有一个内部属性(供解释器使用)_proto_,这个属性指向新建对象的原型,people对象字面量的原型是什么呢,它是Object.prototype。
如图:

function People(){
this.name = 'xiaoliu';
}/*对象模板*/
var people = new People();/*创建对象*/
这里的people对象的原型直线 Person的构造器
function People(){
this.name = 'xiaoliu';
}/*对象模板*/
People.prototype = {
constructor: People,/*原来People.prototype指向的对象中默认的唯一不可枚举属性,现在修改了prototype的引用,所以最好再恢复一下*/
toString: function(){return this.name}
};/*修改原型*/
var people = new People();/*创建对象*/
people.toString();/*执行继承方法*/
这里改变了People的原型
最后,是通过ES5提供的Object.create()方法
代码实例:
var people = {name: 'xiaoliu'};
var a = Object.create(people);/*创建一个新对象,并把原型_proto_初始化为people对象*/
a.name;/*返回原型链上的name属性*/
参考:http://www.cnblogs.com/liubingblog/p/4345208.html
浙公网安备 33010602011771号