局部作用域的优先级的问题
不是说越内层的变量优先级更高啊,所以调用fn()的时候直接打印name就应该是xhei,而不是xm啊
这里和课程中讲的优先对不上啊,另外后面截图的注释的问题
12
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕言
2021-07-02 17:49:52
同学你好,解答如下:
1、fn2函数中使用var定义了name,值为xhei,是一个局部变量,调用fn函数,不会将fn2函数中的name改为全局变量,如果在如下位置打印name,会在全局作用域中查找name属性,打印结果为xm。
控制台:
2、如果在fn2函数中打印name,那么会先在fn2函数中查找name,会打印出xhei,如下(也就是同学理解的越内层的变量优先级更高):
控制台:
3、fn2函数的返回值是name(也就是xhei),只有执行了fn2函数,才能拿到xhei,如下:
控制台:
4、代码中,fnfn2是fn函数的返回值,也就是fn2函数,可以打印出来看看:
控制台:
执行fnfn2相当于执行fn2函数,把fn2函数的返回值赋值给了fnName,打印fnName就可以得到xhei。
同学不要着急,按照老师的回复再缕一下思路。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星