Qooxdoo:如何使用qx.lang.normalize.Arrayclass?

Qooxdoo: How to use qx.lang.normalize.Array class?

我不知道如何使用 qx.lang.normalize.Array class。我对地图功能有更具体的问题。这是我的尝试

var arr1 = [1, 2, 3, 4];

// I am sure this is wrong
arr1 = qx.lang.normalize.Array.map(function(item, index, arr1){
  return item * 2;
},this);
this.debug("arr1: " + arr1);

var arr2 = [1, 2, 3, 4];

// but this works
arr2 = arr2.map(function(item){
  return item * 2;
},this);
this.debug("arr2: " + arr2);

http://tinyurl.com/hzervvt

在调试调用中,arr1 为空,而 arr2 按预期工作。 从documentation不清楚应该怎么称呼。

另一个问题是:我应该使用那个 class 还是现代浏览器不再需要它?

更新:经过一番搜索,我找到了this test file。我看到除了文档块中的 @require 之外没有特别提到 qx.lang.normalize.Array 。这是否意味着规范化会自动发生,并且在我上面的代码中,对 map() 的第二次调用可能来自 class?

你根本不应该直接使用 qx.lang.normalize.* - 它们是 polyfills 并且存在,所以当遇到旧的或有问题的浏览器时,Qooxdoo 会将 qx.lang.normalize.Array 中的方法添加到全局Array.

这允许您编写真正适用于所有浏览器的代码(如 arr2.map...),Qooxdoo 将安静地(并自动)修复任何损坏的浏览器。