在VBScript中有三种变量作用域:
① 脚本级作用域
变量在整个脚本文件中都是有效的。声明的变量的作用域就是整个脚本。
② 过程级作用域
变量在过程或函数中有效。过程、函数之外的其它代码都不能访问过程级变量。
③类级作用域
这是一种包含属性和方法的逻辑分组的特殊结构。类定义之外的代码都不能访问类级变量。
有三种语句可以用于声明变量:Dim、Private、Public
在不同的情况使用不同的语句声明变量,具体取决于变量的作用域:
① Dim:用于声明脚本、过程、类级作用域的变量
ü 所有被声明为脚本级的变量在整个脚本文件中有效,无论使用的是Dim、Private还是Public;
ü 用于过程变量,必须使用Dim;
ü 用于类级的变量,Dim的效果跟Public是完全相同的;
② Private:用于声明脚本、类级作用域使用Private语句
ü 如果用于脚本级变量,它的作用跟Dim和Public是完全相同的;
ü 为了声明一个私有的类级变量,必须要用Private;
③ Public:用于声明脚本、类级作用域
ü 声明脚本级作用域的变量,在效果上它跟Dim或Private是一样的;
ü 声明的类级变量就是这个类的公共属性。所有在类级用Dim或Public声明的变量在整个类中都是一个有效的公共属性。
如何正确声明变量
ü 在过程中用Dim声明的变量对于那个过程是局部变量
在脚本级用Dim声明变量,Dim是声明变量的全功能关键字。
在不以类为基础的脚本或是不作为Windows脚本构件的脚本中,Private和Public的效果跟Dim没有区别。
ü 如果您愿意,可以在脚本中用Private(代替Dim)声明整个脚本中都有效的变量。
在类中声明只属于类的变量时,Private的使用就变得更重要了。
Public只用于声明类的公共属性,也可以考虑用Private变量配合Property Let、Set和Get过程。尽管在类中Dim与Public的效果完全相同,但还是偏向于不在类中使用Dim。