浅谈JavaScript作用域链
2018-01-03 本文已影响0人
饥人谷_Jackie
JavaScript中的函数拥有自己的执行环境,每一个执行环境中都有一个与之关联的变量对象,环境中所有定义的变量和函数都保存在这个变量当中。
当代码在一个执行环境中执行时会创造一个作用域链。这个作用域链保证对执行环境有权访问的变量和对象的有序访问。作用域链的最前端始终为当前执行代码所在的环境的变量对象,作用域链的下一个变量对象来自其包含环境,以此类推,作用域链的末端始终为全局作用域的变量对象。
标识符解析是沿着作用域链一级级搜索的过程,搜索过程从最前端开始(即当前执行环境),如果没有的话则向后回溯,直至找到标识符为止。