Qooxdoo:如何使用qx.lang.normalize.Array类?

时间:2017-01-03 21:08:02

标签: javascript qooxdoo

我无法弄清楚如何使用qx.lang.normalize.Array类。我对map函数有更具体的问题。这是我的尝试

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开始不清楚它应该如何调用。

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

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

1 个答案:

答案 0 :(得分:2)

您不应该直接使用qx.lang.normalize。* - 它们是polyfill并且存在,以便在遇到旧的或错误的浏览器时,Qooxdoo会将qx.lang.normalize.Array中的方法添加到全局{{ 1}}。

这允许您编写真正适用于所有浏览器的代码(如Array),Qooxdoo将悄悄(并自动)修复任何已损坏的浏览器。