//構造函數(函數都有一個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()}}
閱讀更多 超然不累於物 的文章