首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Javascript 对象是怎么获取原型的属性方法的

2012-03-03 
Javascript 对象是如何获取原型的属性方法的?functionClassA(){}ClassA.prototype.flagA functionClas

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的呢?




[解决办法]
个人认为可能是a对象没有重新被构造,所以除了你改了的属性其他的都没有变。想来可能是js里把constructor做为一个对象的普通属性来看待的。
[解决办法]
prototype 是游离于ClassA对象之外的一个扩展
你把 a.constractor 改成 ClassB 只是把这个类的结构体变了,而没有改 prototype

热点排行