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

Native function [.sort()] not recognized inside event handler

本文关键字:sort 函数 本机 程序 识别 事件处理      更新时间:2023-09-26

环境:SeaMonkey (FireFox 20.0)

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

(所有代码样本都来自顶层(.html)文件)。

:

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

失败:(Error: TypeError: xyzzy. Error)Sort不是函数)

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

在postMessage事件之后,处理程序与worker具有相同的上下文和作用域。很好。不用说,这种分类在工人内部是失败的。似乎如果一个实用程序库无法访问?

彻底打败了。我在这个问题上花了几天时间——毫无疑问,我在某个地方读到了解决方案,但没有理解它。任何贡献(包括"粗鲁但信息丰富的")都将被感激地接受。我完全理解无情地惩罚新手的必要性。

在修复对Array的调用之前,这两个示例都不能正常工作。排序方法

语法

array.sort ([compareFunction])

Javascript

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