Posted in Javascript onAugust 05, 2010
js对象生成时:
如:function BB(a){
this.a="kkk"
}
var b=new BB();
这时b是对象有了BB的的属性prototype所指向的prototype对象;
prototype对象有constructor属性指向BB这个函数;
所以alert(b.constructor==BB.prototype.constructor) //true
这里的“有了”的执行过程是先查看b有没有此属性让后去查看prototype里的属性值,不是简单的A=B:
如添加:b.constructor="ccc";
执行:alert(b.constructor==BB.prototype.constructor) //false; BB.prototype.constructor仍然是BB函数;
看一下taobao的kissy的继承:
O = function (o) { function F() { } F.prototype = o; return new F(); }, sp = s.prototype, rp = O(sp); r.prototype = rp; //alert(r.prototype.constructor==sp.constructor) rp.constructor = r; //alert(r.prototype.constructor==sp.constructor) r.superclass = sp;
刚开始理解错了,不明白一直这样来回空调用
javascript new后的constructor属性
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@