为了账号安全,请及时绑定邮箱和手机立即绑定

函数调用会不会生成新的作用域 js

函数调用会不会生成新的作用域 js

繁花不似锦 2019-04-15 08:08:47
函数调用会不会生成新的作用域 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


查看完整回答
反对 回复 2019-04-16
  • 3 回答
  • 0 关注
  • 850 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信