为什么这里的立即执行函数无法访问到全局里定义的函数,但全局定义变量就可以

来源:3-1 let.const命令

高哥没有毒

2018-06-05

var a = 2;
function func(){
    console.log('global foo');
}

(function() {
    if(false) {
        function func() {
            console.log('local foo');
        }
    }
    console.log(a);    // 2 
    func();            // TypeError: f is not a function
}());

我能理解由于块作用域的存在,内部的func函数无法访问到,但立即执行函数无法访问外部函数吗?

写回答

1回答

快乐动起来呀

2018-06-05

var a = 2;

function func(){

    console.log('global foo');

}

 

(function() {

    console.log(a);    // 2 

    func();            // TypeError: f is not a function

}());

试试这个就没问题,你想想为什么?

0
0

ES6零基础教学 解析彩票项目

ES6从零开始,量身设计的迷你案例,让你全面掌握ES6

2579 学习 · 881 问题

查看课程