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;

  刚开始理解错了,不明白一直这样来回空调用