一起学 Microsoft AJAX Library-Type 类

作者:vkvi 来源:千一网络(原创) 日期:2009-5-14

Type 的内容也非常多,我觉得两个很常用:

  • Type.registerNamespace(namespacePath[, baseArguments])
  • classInstanceVar.registerClass(typeName[, baseType[, interfaceTypes]])

分别用以创建一个名称空间和注册一个类。用示例来说明:

Type.registerNamespace("Samples");
 
Samples.A = function () { this.name = "来自类 A"; }
Samples.B = function () { Samples.B.initializeBase(this); }
Samples.C = function () { this.name = "来自类 C" }
 
Samples.A.registerClass("Samples.A");
Samples.B.registerClass("Samples.B", Samples.A);
Samples.C.registerClass("Samples.C");
 
var a = new Samples.A();
var b = new Samples.B();
var c = new Samples.C();
 
alert(a.name + "," + b.name + "," + c.name);

结果为:来自类 A,来自类 A,来自类 C。可以看出 B 继承自 A 了,它是怎么实现继承的呢?如下:

  • 在派生类的第一行调用 initializeBase,第一个参数表示要初始化谁的基类,所以通常是 this。第二个参数为基类构造函数的参数。
  • registerClass 时指定基类类型,是类型,所以没有引号。

上述示例经过了测试,MSDN 上有几个示例有误。

相关阅读

相关文章
文章评论