function caller(){
    this.length=1;
    this.getLength=function(){
        return this.length;
    }
    
    return this;
}var c = new caller(); //????请教下上面new语句的意思:
理解1:先执行caller()函数,执行完成后返回个this对象(此时返回的this到底是啥?caller的一个实例?caller自身?),返回this对象是一个构造器,使用new去实例化这个构造器类
理解2:直接将caller作为构造器,使用new去创建caller的一个实例。
理解3:其他。请达人解释下,困惑了许久!!

解决方案 »

  1.   

    this是这个类的一个指针吧,实际就是caller这个类的一个实例对象而已。
    看下这篇
    http://dbear.iteye.com/blog/613745
      

  2.   

    理解2:在new的函数中  允许返回一个 object 作为 new的 结果值
    否者 就 将创建的 匿名的 一个object传出来 这个object 就是 在new后 this 指向的对象所以  里面 return  this  和 没有这个 句子  结果是一样的
    new  function a (){}   ==>var o = {};return  a.apply(o) || o ;
      

  3.   


    问了几个人好像都是这个意思,有return this;和没return this;是一样的效果!
    多谢了!