在写JavaScript或者Node.js的时候
let a = 1
// func 是一个高阶函数
func(() => {
console.log(a) // 有时候a可以访问到, 有时候a不能访问到
})
func只是高阶函数的一个代指,其可能是形如setTimeout的函数,可能是fs.readFile之类的函数,请不要在意func函数实现。
本问题着重关注的是在回调函数中的某个变量a,在一些高阶函数中可以访问外部变量,在另一些高阶函数中不能。
这是为什么?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
语法错了吧~
func函数简单贴出来吧
let是块级的,在全局里let a = 1;你可以打印window.a是找不到的,setTimeout调用回调,内部找不到,向父级寻找也是找不到的。
报错-
Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
你把代码贴全,func的上下文