js输出值问题

    var z = 10;

    function foo(){

      console.log(z)

    }


    (function (fn){

      var z = 20;

      fn();

    })(foo)

为啥输出的是10?

冉冉说
浏览 526回答 1
1回答

元芳怎么了

fn 函数需要查找变量 z,由于JavaScript 采用词法作用域,fn 函数被解析的时候是在全局作用域,所以 z 是全局作用域中的 10,而非 IIFE 里面的 z。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript