读书人

刚刚学JS代码求解释

发布时间: 2013-12-04 17:21:02 作者: rapoo

刚学JS,代码求解释


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;
}

在http://msdn.microsoft.com/zh-cn/library/hh968323.aspx看到这个,直接用这个运行得不到它的那个结果。刚学JS,还没弄明白这里面的object和function什么含义,请大家帮忙解释解释
[解决办法]
它的目的是告诉我们。
在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;
}

[解决办法]
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;
}

给楼主小小的修改了下代码,楼上上述两种情况都是表达式,没有执行函数,我这里来了个自调就能达到楼主需要的效果了

读书人网 >JavaScript

热点推荐