函数表达式和函数声明的区别

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();
}
上一篇下一篇

猜你喜欢

热点阅读