vbs对public和private是不是不完全支持啊?
vbs里是支持public和private的,但是vbs里没有标准模块bas文件的概念吧,而且只有在ASP环境下,才有了inc文件这么一个概念,而且这个inc好象只是起共享代码的作用,根本没有像bas里面public的效果嘛这样一来,vbs的public和private就只在自定义类里面体现了吧?--这方面还不是很懂
这样问题有三个:
1、inc有bas的效果吗?
2、vbs的public和private只是在自定义类时才用得上吗?
3、vbs的public和private除了作用域外,有体现生命期的方面吗?
应该是的
class里定义的变量随class生而生,随class死而亡。 作用域?反正就是外面能不能访问到。 楼主应该补习一下OOP面向对象的知识 ASP里只有VBS的自定义类才能使用没有VB里的类模块文件,这个是与VB不同的。 而且貌似是没有module(模块)的概念的,执行的代码(class之外的)连成一张饼
[[it] 本帖最后由 multiple1902 于 2008-6-14 17:20 编辑 [/it]] 恩,谢谢两位斑竹,我要好好的理解一下 又回到这里~~~yms123,好久不见,呵呵
1、建议楼主不要使用inc文件,因为inc文件会暴露
2、public和private叫做访问修饰符,在oo中,只用于修饰类、类成员和类方法,在asp中,OO的机制不完全(没有继承),且无法用来修饰类的访问权限
3、生命周期是对象或变量在作用域中的行为(出生-使用-死亡),和访问修饰符没有任何关系 谢谢 两个版块的斑竹 哈哈
找到了那篇文字:
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。应予以注意。
上面的是说C的,让我给混淆了--不过说起来,脚本语言是不是压根就没有生命期这个概念啊?也就是ASP里的session和application带点程序级生命期的意思,其他的不都是运行完就死了 脚本语言当然有生命期。什么语言都有…… 我的意思是说
一般表现出来的生命期都是过程级的,很少程序级的--session和application,或者说无法自由的定义程序级的生命期
也有可能是因为我只是从网页这一个方面来接触的脚本语言,是不是网页这种形式的原因? 楼主的知识个人感觉学得非常混乱,没有把局部的变量和常量的作用域和生命周期搞明白。
session是asp内置的一个对象,他的级别是用户级(有些教科书上也称为会话级),用户级是指这个内置对象存储的内容,只能在当前登录网站的用户自己看到,比如说登陆网站的用户登陆后有用户名,而其它页面asp这个用户还能看见自己的用户名,但他看不到别的用户的用户名。
而application之所以称之为全局或程序级、网站级对象是因为这个对象存储的数据对整个网站都可见,所有用户也都看得见。一般像网站点击率统计有时会用这个对象,这个对象因为是程序级的,所以这个对象跟网站程序(IIS信息服务)一起存在,这个对象除非手动清楚,否则不会被自动清楚。只有在服务器IIS信息服务重起或服务器计算机本身重起之后才会自动被清楚。 看了yms123斑竹的话,我突然悟到了
所谓网站程序,其实就是IIS程序,我们写的一个个网页就是IIS这个程序的一个个内部过程
application就是IIS这个程序的全局静态变量(相当于public声明的),session相当于private声明的,一般网页都是一个个的过程代码。因为IIS规定死了,所以我们只能搞点过程级的动作了
呵呵,这么理解对不? 面向对象与application或session还是不同的,这两个知识并不能混为一谈。
页:
[1]
