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