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