调用函数,是不是就等于把函数放在调用语句的位置执行,然后访问变量的时候,再一步一步的向外寻找
在这里输入代码,可通过选择【代码语言】突出显示
登陆购买课程后可参与讨论,去登陆吧
同学你好,是可以这样理解的。祝学习愉快!
同学你好,同学提供的截图和老师给出的例子是两种不同的情况,同学提供的例子,在调用函数时传递了参数,参考下方理解:
在foo内,实际执行的是console.log(arg)这句代码,该句代码内使用了变量arg,所以会从此处开始,先看foo内部是否定义了arg,如果没有,再往外查找。由于调用foo时,传入了实参a的值,所以foo会在调用函数的外部查找a的值。
老师给出的例子中,没有传递参数,会打印出全局作用域的num值。
祝学习愉快~
也是就说:1.传入了参数的情况下,先看foo内部是否定义了arg,如果没有,就去调用函数的外部去寻找传入的参数 2.没有传入参数,先看foo内部是否定义了arg,如果没有,就在定义函数的外部找。
我这个理解对吗?老师
同学你好,是定义fn函数的外部,例如:
可是这个题的答案是,访问a的时候的作用链是:
函数作用域 -> 块级作用域 –> 块级作用域 –> 函数作用域 –> 全局作用域
这个怎么解释啊,按照老师说的,不应该是直接从foo函数到全局吗?
同学你好,函数在定义时会有名字,例如:function fn(){},fn就是此函数的名字,调用函数时,函数名后面加()即可,例如:fn()。如果函数内部访问某变量,那么会先在fn函数内部查找,如果函数内部有此变量,就不会往外层查找了;如果在fn内部没有,会向fn函数外部查找。
fn函数的外部,是不是调用的地方的外部
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
登录后可查看更多问答,登录/注册
前端技术快速更迭,人才紧缺。带你从0基础开始,成为Web全栈工程师,转行就业更顺畅。
93 2
44 2
74 4
30 1
32 1
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号
在线咨询
领取优惠
免费试听
领取大纲
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧