函数表达式和函数声明的区别
2019-07-21 本文已影响0人
小透明进击战
错误的例子
function functions(flag) {
if (flag) {
function getValue() { return 'a'; }
} else {
function getValue() { return 'b'; }
}
return getValue();
}
函数声明会提前解析,并让它在执行任何代码前可用,上面的例子中,getValue
函数会提前解析,也就是总是会执行解析的最新的那个。所以改为。
function functions(flag) {
var getValue=null;
if (flag) {
getValue=function() { return 'a'; }
} else {
getValue=function() { return 'b'; }
}
return getValue();
}