JS---prototype

function Person(){}
undefined
typeof Person
"function"  //Person是一个构造函数

p=new Person();
Person {} //p是Person函数构造的一个实例,是一个Person{}对象
p.__proto__  //__proto__属性只能用在对象上,表示该对象的原型对象。该属性在firefox,chrome中有效
Person {}
Person.prototype //prototype属性只能用在函数上,而且任何函数都有该属性,其实该属性也是一个对象。
Person {}
p.__proto__===Person.prototype
true  //通过构造函数创建对象时,构造函数的prototype属性将被作为原型赋值给所有的对象实例(也就设置了实例的__proto__属性),也就是说所有实例的原型引用的都是函数的prototype属性

p.__proto__.__proto__
Object {} //实例p的原型的原型是一个Object{}对象
Person.prototype.__proto__
Object {}
Person.prototype.constructor //Person{}对象的构造器
function Person(){}  //"Person.prototype"对象和Person函数通过"constructor"和"prototype"实现了相互引用.   

posted @ 2015-11-17 09:17  框框A  阅读(125)  评论(0编辑  收藏  举报