我无法弄清楚如何使用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()可能来自该类?
答案 0 :(得分:2)
您不应该直接使用qx.lang.normalize。* - 它们是polyfill并且存在,以便在遇到旧的或错误的浏览器时,Qooxdoo会将qx.lang.normalize.Array
中的方法添加到全局{{ 1}}。
这允许您编写真正适用于所有浏览器的代码(如Array
),Qooxdoo将悄悄(并自动)修复任何已损坏的浏览器。