IE10代码块中,函数声明提前的兼容问题
var obj = {bol: true}
function fun() {
if (obj.bol) {
time(callback)
function callback() {
console.log('callback1')
}
} else {
time(callback)
function callback() {
console.log('callback2')
}
}
}
function time(cb) {
setTimeout(cb, 1000)
}
fun();
上述代码中,当执行
fun
方法时,再chrome和firefox以及IE11浏览器中,会输出callback1
,但是在IE10中,会输出callback2
至于解决办法,只需要将if{}else{}
中的函数名称改为不一样的就可以了。