函数执行过程中:
1.每使用一个变量,函数都会由近到远的遍历自己的好友列表中的作用域对象。
2.如果在离自己近的格子中找到了局部变量,就优先使用局部变量,不再去全局找。
3.如果在离自己近的格子中没找到要用的局部变量,才被迫去全局找,如果在全局找到了想用的变量,则本次修改结果,会影响全部变量的值。
当函数调用后:
1.函数会清空’好友列表’中离自己近的格子。
2.导致函数作用域对象没人要了,自动释放。
3.导致函数作用域对象内本次使用的局部变量一同释放,所以,局部变量在函数外无法使用,也无法重用。
作用域链:
1.由多级作用域连接起来形成的链式结构。
2.'好友列表’就是作用域链。
3.作用 :
a.保存着一个函数可用的所有作用域对象和变量。
b.控制着变量的使用顺序:先局部后全局,就近原则。
全部变量:
优点:可反复使用。
缺点:随处可用,不易被更改。
局部变量:
优点:仅函数内可用,不会被更改。
缺点:不可重用。