對象及原型中的幾個需要注意的地方

function Fn(){};

Fn.prototype = {a: 1};

var f = new Fn();

f.a ==> 1;

f instanceof Fn ==> true

f.constructor ==> Object

Fn.prototype ={b: 1};

f.a ==> 還是1,因爲f的__proto__是指向{a: 1},而不是Fn.prototype。

f instanceof Fn ==> false f的原型鏈中已經沒有Fn.prototype了,所以不是Fn的實例。

f.constructor ==> Object


function Gn(){};

Gn.prototype.a = 1;

var g = new Gn();

g.a ==> 1;

g instanceof Gn ==> true

g.constructor ==> Gn

Gn.prototype = {b: 1};

g.a ==> 1

g.constructor ==> Gn constructor是默認存在於Gn的prototype中的。

g instanceof Gn ==> false

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章