函数调用会不会生成新的作用域 js
3 回答
风起临冬
TA贡献5条经验 获得超1个赞
前面的回答说了大一堆,我不知道是不是复制粘贴还是答非所问,就是不说会不会生成新的作用域。我的回答是,不会。
function a() {
let x = 0
b()
return y
}
function b() {
let y = 1
}
猜猜a函数返回什么?
全局环境中,a函数中调用了b函数,并没有增加新的作用域。这段代码作用域共有三个,window全局作用域、a函数作用域、b函数作用域。其中全局作用域被a和b共用,作为它们执行环境栈的栈底,栈顶分别是它们当前的作用域(即变量x和y所在的作用域),没有增加新的作用域,同时a和b的执行环境栈中都没有彼此。
a()返回结果是:报错y is not defined
添加回答
举报
0/150
提交
取消