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 词法作用域和闭包分析说明
复制代码 代码如下: var classA = function(){ this.prop1 = 1; } classA.prototype.func1 = function(){ var that = this, var1 = 2; function a(){ return function(){ alert(var1); alert(this.prop1); }.apply>>>详细阅读
本文标题:javascript new后的constructor属性
地址:http://www.17bianji.com/kaifa2/JS/25865.html
1/2 1