在事件处理程序中无法识别本机函数[.sort()]

时间:2013-05-13 01:22:17

标签: javascript typeerror worker

环境:SeaMonkey(FireFox 20.0)

我试图做一个简单的排序:在工作者本身内部或在其postMessage处理程序内部

(来自顶级(.html)文件内的所有代码示例)。

如下:

function a() {
  var xyzzy = [40, 1, 5, 200];
  xyzzy.sort();
};

失败 :(错误:TypeError:xyzzy.sort不是函数)

var lrw0 = new Worker('lrw0.js');
lrw0.onmessage = function (event) {
  var xyzzy = [40, 1, 5, 200];
  xyzzy.sort();
};

在postMessage事件之后,处理程序具有与worker相同的上下文和范围。很公平。不用说,工人本身内部的排序失败了。好像无法访问实用程序库?

彻底失败了。我花了好几天时间 - 毫无疑问,在没有理解的情况下阅读解决方案。任何贡献(包括粗鲁但信息丰富的#39;)都会感激不尽。我完全理解无情地惩罚新手的必要性。

1 个答案:

答案 0 :(得分:0)

在您修复对Array.sort方法的调用

之前,这些示例都不会有效
  

语法

     

的Array.sort([的compareFunction])

的Javascript

function a() {
  var xyzzy = [40, 1, 5, 200];
  xyzzy.sort(); // notice the difference

  console.log(xyzzy);
};

a();

jsfiddle