我知道这个还没有运行,我就是觉得他这样写没什么意义啊!把function放在switch语句里面,我纳闷的是他的那篇文章的结果是怎么出来的

解决方案 »

  1.   

    它的目的是告诉我们。
    在chrome和IE下function在所有执行代码前先编译,且后面的function会覆盖前面的function
    因为,我们需要动态分配的函数,很明显,上面那个东西并不是我们希望得到的结果。所以有下面那段代码。
    var input = 5;  
    switch (input) {  
        case 10:  
            fun1 = function() {  
                alert(10);  
            }  
            break;  
        case 5:  
            fun1 = function() {  
                alert(5);  
            }  
            break;  
        default:  
            fun1 = function() {  
                alert("default");  
            }  
            break;  
    }  
      

  2.   

    var input = 5;  
    switch (input) {  
        case 10:  
            function fun1() {  
                alert(10);  
            }  
            break;  
        case 5:  
           ( function fun1() {  
                alert(5);  
            } )() 
            break;  
        default:  
            function fun1() {  
                alert("default");  
            }  
            break;  
    }给楼主小小的修改了下代码,楼上上述两种情况都是表达式,没有执行函数,我这里来了个自调就能达到楼主需要的效果了
      

  3.   

    CSDN是新学者的好助手,好老师。
      

  4.   

    明白意思了!我在后面调用了一下fun1,就发现结果了,而这个switch语句基本上等同没有用,这里就是他所表达的意思:在谷歌和IE浏览器中,function是优先编译的,