新萄京计算机网络

 新萄京计算机网络     |      2020-02-09
  • 一起学 Microsoft AJAX Library-介绍
  • 一起学 Microsoft AJAX Library-Array 类型扩展
  • 一起学 Microsoft AJAX Library-Boolean 和 Date 类型扩展
  • 一起学 Microsoft AJAX Library-Error 和 Number 类型扩展
  • 一起学 Microsoft AJAX Library-Object 和 String 类型扩展
  • 一起学 Microsoft AJAX Library-Type 类
  • 一起学 Microsoft AJAX Library-DomElement
  • 一起学 Microsoft AJAX Library-DomEvent
  • 一起学 Microsoft AJAX Library-Sys.Net.WebRequest
  • 一起学 Microsoft AJAX Library-Sys.Browser
  • 一起学 Microsoft AJAX Library-组件、行为、控件
  • 一起学 Microsoft AJAX Library-介绍
  • 一起学 Microsoft AJAX Library-Array 类型扩展
  • 一起学 Microsoft AJAX Library-Boolean 和 Date 类型扩展
  • 一起学 Microsoft AJAX Library-Error 和 Number 类型扩展
  • 一起学 Microsoft AJAX Library-Object 和 String 类型扩展
  • 一起学 Microsoft AJAX Library-Type 类
  • 一起学 Microsoft AJAX Library-DomElement
  • 一起学 Microsoft AJAX Library-DomEvent
  • 一起学 Microsoft AJAX Library-Sys.Net.WebRequest
  • 一起学 Microsoft AJAX Library-Sys.Browser
  • 一起学 Microsoft AJAX Library-组件、行为、控件


Array 类型扩展

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

使用 Array 类型扩展时,要确保数组的元素不为 undefined,否则不同浏览器中可能会有不同表现。

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

Array.add(array, item)

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

var arr = [1, 2, 3, 4];
Array.add(arr, 5);
alert(arr[4]); // 5

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);

Array.addRange(array, items)

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

var arr = [1, 2, 3, 4];
var arr2 = [5, 6];
Array.addRange(arr, arr2);
alert(arr[5]); // 6

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

Array.clear(array)

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

移除 array 的所有元素,其 length 将为零。

相关阅读

var cloneVar = Array.clone(array)

  • 在 JavaScript 中实现命名空间

  • 一起学 Microsoft AJAX Library-介绍

  • 一起学 Microsoft AJAX Library-Array 类型扩展
  • 一起学 Microsoft AJAX Library-Boolean 和 Date 类型扩展
  • 一起学 Microsoft AJAX Library-Error 和 Number 类型扩展
  • 一起学 Microsoft AJAX Library-Object 和 String 类型扩展
  • 一起学 Microsoft AJAX Library-Type 类
  • 一起学 Microsoft AJAX Library-DomElement
  • 一起学 Microsoft AJAX Library-DomEvent
  • 一起学 Microsoft AJAX Library-Sys.Net.WebRequest
  • 一起学 Microsoft AJAX Library-Sys.Browser
  • 一起学 Microsoft AJAX Library-组件、行为、控件

将 array 复制一份给 cloneVar。


var itemExists = Array.contains(array, item)

搜索 array 中是否存在 item,大小写敏感。

var firstElement = Array.dequeue(array);

从指定的 Array 对象中移除第一个元素,并返回该元素。

var arr = ["a", "b"];
alert(Array.dequeue(arr)); // a