解决方案 »

  1.   

    这里的时候,就会执行这段函数,而执行后的结果,是不是会返回值,就取决于第一个括号内的函数,是不是有返回值。你这里,第一个括号的函数在执行后会返回一个构造函数。并且把这个构造函数赋值给了window.myObj。再者所有的在全局变量中定义的属性和方法,都是被添加到了window对象上,也就是说:
    window.myObj = function(){}myObj = function(){}这两种写法,是完全相同的,在后面使用时,直接使用myObj()调用可以,使用window.myObj()调用也可以。所以你这里经过那个自执行函数之后,window.myObj中就是保存了那个构造函数的引用了,所以可以使用new操作符进行实例化了。
      

  2.   

    函数被立即返回了啊
    所以window.MyObject就是你定义的那个对象的构造函数了
      

  3.   

    window.aaa=(function(){function myObj(name,sex){
    this.name=name;
    this.sex=sex;
    }myObj.prototype.show=function(){
    console.log(this.name+"---"+this.sex);
    };
    return myObj;
    })(); <script type="text/javascript">
            var myObj=new aaa('name','sex');//?
                myObj.show();
        </script>
    这样会不会好理解一些
      

  4.   

    (function(){function myObj(name,sex){
    this.name=name;
    this.sex=sex;
    }myObj.prototype.show=function(){
    console.log(this.name+"---"+this.sex);
    };
    return myObj;
    })();
    你主要你是理解 我标红的 做了 什么事情另外 内部的代码 逻辑有问题  等以后你自己 发现在改吧
      

  5.   

    去看一下js对象的创建的方式另外,所有的全局变量和方法,都window属于对象var a = 2;
    a 和window.a是相同的
      

  6.   

    感谢各位指导,明白,myobj保存了构造函数的引用,所以可以用new来创建对象