查了很多资料,终于理解COM(组件对象模型)是一个基于二进制通用接口的规范或技术,而ActiveX组件代表用COM技术开发的组件,ActiveX只是一个标识(商标),ActiveX组件可理解为一个文件(DLL或EXE),这个文件可以提供一个或多个对象(此时的对象也可以叫类)以及对象的方法和属性,有些文章叫ADO为对象和Recordset为对象,而通过:
Set myrs = Server.CreatObject("ADODB. Recordset")
产生的myrs也叫对象,我觉得应该叫ADO为组件,它包含了Recordset、Connection、Command等几个类,而通过:
Set myrs = Server.CreatObject("ADODB. Recordset")
产生的实例 myrs叫对象(或叫Recordset对象),这样可能会更易理解。
不过,我还觉得Object,意思是物体或对象,也就是说生成实例之前的是一个Object,生成的实例也是一个Object;一个单元,一个组件,一个实例,一个抽象的类,任何一样东西,都可以叫Object(对象),所以在ActiveX组件中的Object,可以是对象,类,模块,单元等,只是在使用之前,要将它们实例化,赋给一个变量,这个变量就叫Object变量或叫对象变量(也可以叫“什么类型+对象变量”)。
另外,ASP中的五个内置对象,其实是五个ActiveX DLL组件,是由IIS初始化;
还有,控件,我的理解是有界面,用户可以交互的组件;插件就是插入程序以扩展其功能的组件。
最后,总之抽象的是类,实在的是对象,类和组件都要经过实例化成对象。