总结:
1.js采用的作用域是静态的,即函数作用域在函数定义时就已确定
2.动态作用域是指函数作用域在调用时才确定
let a = 1
function fn(){
let a = 2
return () => alert(a)
}
fn()() // 2 ,其实也是闭包
function fn2(){
let a = 3
let fn3 = () => alert(a)
fn3()
}
fn2() // 3
总结:
1.js采用的作用域是静态的,即函数作用域在函数定义时就已确定
2.动态作用域是指函数作用域在调用时才确定
let a = 1
function fn(){
let a = 2
return () => alert(a)
}
fn()() // 2 ,其实也是闭包
function fn2(){
let a = 3
let fn3 = () => alert(a)
fn3()
}
fn2() // 3