構造函數、對象原型、實例對象三者之間的關係

構造函數、對象原型、實例對象三者之間的關係

//構造函數(函數都有一個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()}}


分享到:


相關文章: