构造函数、对象原型、实例对象三者之间的关系

构造函数、对象原型、实例对象三者之间的关系

//构造函数(函数都有一个prototype属性,prototype属性是一个指针)

 function Fn(){

}

//obj即是Fn函数的原型对象(prototype指针指向的对象)

 var obj=Fn.prototype 

//原型对象上constructor属性(也是一个指针)指向关联的构造函数Fn

 {constructor: ƒ Fn()}

//实例化对象ob2有个内部属性__proto__(原型链)指向fn的原型

//就是上面的{constructor: ƒ Fn()},从而访问原型上的方法属性

 var obj2 = new fn() 

//现在我们给构造函数加上属性看看

 function Fn(){
this.attr1=1
}
Fn.prototype.attr2=2

//打印Fn的原型对象 var obj=Fn.prototype;

 {attr2: 2, constructor: ƒ Fn()}

//打印Fn的实例对象 var obj2=new Fn();

 {attr1: 1,__proto__:{attr2: 2,constructor: ƒ Fn()}}


分享到:


相關文章: