JavaScript 闭包



  • 函数作为返回值, 结果 = ?

    function  create(){
        const a = 100; 
        return function () {
            console.log(a)
        }
    }
    const fn = create()
    const a = 200
    fn() 
    

    函数作为参数被传递, 结果 = ?

    function print(fn){
        const a = 200
        fn()
    }
    const a = 100
    function fn(){
        console.log(a)
    }
    print(fn)
    


  • 100
    100

    所有自由变量的查找, 是在函数定义的地方, 向上级作用域查找, 不是在执行的地方!


Log in to reply
 

更多推荐主题