要达到将普通的JavaScript封装成类似.NET的框架,Type可谓是功不可没阿,通过Type中的一些方法可以将我们的脚本注册到一个类,将一个类注册到一个命名空间中等等。下面我们将会对前面几个对应的类似.NET框架的Microsoft Ajax脚本库进行逐个的介绍。
1.Namespaces
是一个逻辑分类(个人虚构,如有雷同纯属巧合),及时将很多个类(classes)进行分类,通过Type.registerNamesapce方法可以将一个class(一下称为"类",虽然它不象话,但总的给个说法吧!)注册到一个namespace(以下成为"命名空间")中。
2.Classes
引用Type,所有的类都继承自JavaScript的object(在.NET中所有的类也是继承自Object),通过Type.registerClass将一个对象注册到类中。由于应用一个面向对象的模型,在Microsoft AJAX 脚本库中也能够实现继承基类的对象实例。一个类可以包含四个成员:fields, properties, methods, and events。
fields:可以通过应用当前类的实例对象来引用如myClass.name="MyName";
properties:通过带有get和set标记的方法对其进行付值,在Asp.net Ajax中通过"get_"和"set_"与方法名称结合来给他付值,如果要对一个叫myname的属性付值,可以通过get_myname和set_myname方法来完成此项任务。
methods:方法也就是函数,这里对不多说了。
events:事件主要涉及到一些行为动作,当一个事件被挂起(激活)时,将调用一个或多个从handlers继承的方法来处理这个事件。
3. Inheritances
众所周知虚函数是要被重写的,大多数面向对象的编程语言都支持类的继承和重写,但是JavaScript是不支持这项功能的。但是在Asp.net Ajax中通过特殊的方式(以"_"为起始标记的方法将被视为私有方法,将不能在外部类中执行此方法)实现了这种重写的功能,将会更好的对脚本库进行扩展。
4.Inheritances
每一个类都可以继承自另一个基类,当一个类继承基类时此类将加载基类中的方法,属性,事件等,同时可以重写基类中的方法,事件等或直接调用基类中方法等,Asp.Net Ajax中也实现了这项功能。
5.Interfaces
接口知识一种约定,并没有实现方法,同样在Asp.Net Ajax中也有接口,其实就是定义一个空函数。
6.Enumerations
通过Type.registerEnum方法可以注册一个枚举,它主要是更直观的表达一个对象。
7.Reflection
使用反射可以知道类中的信息,对Type进行扩展,提供APIs对类进行分析,从而得到类中的信息。
今天先对JavaScript Microsoft Ajax Library(我比较喜欢叫他Microsoft Ajax脚本库)有一个总体上的认识,第一碰这个东西可能很多理解都是歪理,如果人总是从不懂到懂,逐渐深入也总是需要一个过程。就像当年我对Class怎么也不理解(因为我是在没有人指导的情况下,自己研究起来的,生物工程就是我的专业-中国十大骗人专业之一,由于没有注意现在毕业证还寄在学校呢?),希望我对Ajax也能一步一步的弄懂它,如果有不对的地方还请批评指教。