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