2019-05-09

作用域

  • 在代码中任何地方都能访问到的对象拥有全局作用域,一般来说以下几种情形拥有全局作用域:
  1. 最外层函数和在最外层函数外面定义的变量拥有全局作用域
  2. 所有末定义直接赋值的变量自动声明为拥有全局作用域,变量blogName拥有全局作用域,而authorName在函数外部无法访问到。
  3. 所有window对象的属性拥有全局作用域,一般情况下,window对象的内置属性都拥有全局作用域

作用域链

作用域链的前端始终是当前执行的代码所在环境的变量对象。如果这个环境是函数,则将其活动对象作为变量对象。活动对象在最开始时只包含一个变量,即arguments对象。作用域链的下一个变量对象来自包含环境,而在下一个变量对象则来自下一个包含环境。这样一直延续到全局执行环境;全局执行环境的变量对象始终都是作用域链中的最后一个对象。

你可能感兴趣的:(2019-05-09)