Javascript 对象是如何获取原型的属性方法的?
function ClassA(){ }
ClassA.prototype.flag = "A";
function ClassB(){ }
function run()
{
var a = new ClassA();
alert(a.flag);
alert(a.prototype);
alert(a.constructor);
a.constructor = ClassB;
alert(a.prototype);
alert(a.constructor);
alert(a.flag);
}
上面这段代码的执行结果是:
undefined
function ClassA(){ }
undefined
function ClassB(){ }
A
显然,对象a不是动过prototype属性(因为不存在undefined)和constructor属性(改变后a依然可以找到falg)来查早prototype对象的。所以非常奇怪a如何找flag的呢?