作用域链和闭包?JS引擎如何选择顺序的选择变量?

前言
前面的博客我已经说完了块级作用域的实现,站在变量环境和词法环境的角度下去看待这些个问题,会让你对js的工作模式有更加清晰的认识. 接下来我们看一段代码
function bar() {
console.log(myname)
}
function foo() {
var myname = '凯隐'
bar()
}
var myname = '拉亚斯特'
foo()

直接告诉我们这段代码应该打印什么呢?应该打印凯隐,可是结果却出人意料 打印的是拉亚斯特, 唉?不对啊,按照我们之前所说的,bar函数入栈之后查找myname,找不到就去上一个执行上下文去查找,那么应该打印的是凯隐的啊,为什么不一样呢?要解释这个情况,我们就要搞清楚作用域链了
作用域链
关于作用域链,很多人一开始学习的时候会很费解,因为这总是会出现与我们直觉不符合的东西,但是如果我们理解了调用栈,执行上下文,词法环境,变量环境等概

作用域链和闭包?JS引擎如何选择顺序的选择变量?最先出现在Python成神之路

版权声明:
作者:admin
链接:https://www.techfm.club/p/13647.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>