解决方案 »

  1.   

    你能理解第二,三种情况?那你知道第二种情况为什么是错误的吗?function(){}有两种用法。首先说明一下:一个函数后面的()实际上是执行函数的运算符。 当function关键字出现在行首,它是一条“语句”,作为“语句”是没有返回结果的。所以不能用“语句”后面加()来执行函数 当function关键字不是出现在行首,它就是一条“表达式”,作为“表达式”就有返回结果了。可以用“表达式”后面加()来执行函数 为了不让function关键字出现在行首。
    除了第三种情况(function(){})()
    还可以
    [function(){}()]
    ~function(){}()
    +function(){}()
    -function(){}()
    !function(){}()
    当然也可以用第一种情况的
    var txt=function(){}()
      

  2.   

    参考http://www.cnblogs.com/tomxu/archive/2011/12/31/2289423.html