js作用域链

1.在js中每个作用域都有自己的执行环境,每个执行环境又有自己的变量对象,当代码在全局作用域下执行时它的执行环境是全局执行环境,此时如果代码执行到进入一个函数,那么这个函数的执行环境将被推入环境栈,然后这个函数的变量对象将被创建并进入作用域链,通过作用域链,这个函数可以访问自己的变量对象,以及更上层的变量对象(在这里可以访问全局变量对象),对作用域链的访问顺序是从当前作用域的变量对象开始,不断地向外一层上溯,直到找到要访问的变量或者查找完所有的变量对象。当这个函数执行完毕后他的变量对象将被从作用域链中销毁,它的执行环境将被从环境栈中推出。

2.对于执行顺序比较复杂的代码,严格按照代码的执行顺序来阅读代码,可以更容易理解代码的意图,以及看起来很诡异的执行结果,

猜你喜欢

转载自blog.csdn.net/weixin_40522938/article/details/82012382