javascript new后的constructor属性
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;
刚开始理解错了,不明白一直这样来回空调用
- js constructor的实际作用分析
- Javascript的构造函数和constructor属性
- 理解Javascript_11_constructor实现原理
- JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
- 深入分析js中的constructor和prototype
- JavaScript类和继承 constructor属性
- JavaScript中几个重要的属性(this、constructor、prototype)介绍
- JavaScript中的prototype和constructor简明总结
- 不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
- javascript设计模式Constructor(构造器)模式
相关文章
讨论javascript(一)工厂方式 js面象对象的定义方法
看《javascript高级程序设计》有感2009-12-12
最新评论