SS 静态作用域(Static Scope) 也叫词法域(Lexical Scope)
DS 动态作用域(Dynamic Scope)
什么是作用域
简单的说“一个变量在什么范围内产生作用”。像java有public,private等关键字描述类的作用域;像js,没有块作用域,最小是函数级作用域。这两种语言都是静态作用域。
静态作用域指变量或声明的作用域是根据程序编译时就确定的,有时也叫词法作用域
动态作用域则程序中某个变量所引用的对象时在运行时根据程序控制流信息来确定的
只有为数不多的几种语言采用动态作用域规则,大多数语言都是采用静态作用域规则,而且多是最内嵌套作用域规则。即:
①由一个声明引进的标识符在该声明所在作用域可见,而且在其内部嵌套的每个作用域也可见,除非被内部同名覆盖
②为了找到给定标识符所引用的对象,应该在当前最内层作用域里查找。找不到就依次向外层查找