function aaa(){
        var c= 2;
       // return 'adsf';
        return Object();
    }
    bb = new aaa();
    console.log(typeof bb)
    console.log(bb instanceof aaa)
    console.log(bb);aaa返回一个非Object类型的时候bb是aaa的实例,aaa返回一个Oject类型的时候bb是返回的类型的实例,这个是为什么?

解决方案 »

  1.   


    function aaa(){
      var c= 2;
      // return 'adsf';
      return Object();
      }
      bb = new aaa();
      console.log(typeof bb)
      console.log(bb instanceof aaa)
      console.log(bb);高亮一下
      

  2.   

    aaa返回一个非Object类型的时候bb是aaa的实例,aaa返回一个Oject类型的时候bb是返回的类型的实例,这个是为什么?
      

  3.   

    Object是最根上的类,所以肯定不可能是它派生出来的类型实例了啊....再说没有你这样写的啊,你见过java或者.net里面 new一个实例的时候 还返回一个东东么.... 如果把function当做类的话就别返回东西了.
      

  4.   

    灵活吧,不过一般没有这么弄得,一个构造函数返回一个值,不过如果构造函数真的有返回值,则将返回值作为new的结果。而不是构造函数中的this。