动态作用域
无法读取到全局变量的原因, 是变量的值在上层函数中已经被修改了, 其原本的值已经不存在了. 如何实现真正的局部变量, 保证不会对全局变量造成污染呢?...动态作用域读取变量的结果, 其实与上方的回写变量的方式差不多, 不同的是, 动态作用域保留了全局变量原始的值....静态作用域
静态作用域也是通过变量的对照表来实现, 与动态作用域不同的是, 每个函数能看到的变量对照表只有自己的和全局的, 上面的函数调用, 换成静态作用域大概如下:
?...这样就能让函数绕过上层, 直接访问全局变量了.
现象
了解了变量作用域相关内容, 也就能够解释最开始遇到的现象了....(也不知道为什么2.1比2.2还要晚一年发布)
在函数中如果想修改外部变量, 需要对变量进行声明, 若不声明则创建本地变量.