2013-05-13 51 views
0

环境:SeaMonkey的(火狐20.0)本地函数[的.sort()不是事件处理中公认

我试图做一个简单的排序:要么工人自身内部或其内部的postMessage处理程序。

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

作品:

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

失败:(错误:类型错误:xyzzy.sort不是一个函数)

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

的postMessage的事件后处理程序具有相同的背景和工作范围也一样。很公平。不用说工人本身内部的排序失败。似乎无法访问实用程序库?

完全失败。我花了几天的时间 - 无疑在某个地方阅读解决方案而不理解它。任何文稿(包括'粗鲁但内容丰富')都非常感谢。我完全赞赏无情惩罚新手的必要性。

回答

0

无论这些例子会工作,直到你解决调用Array.sort方法

Syntax

array.sort([compareFunction])

的Javascript

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

    console.log(xyzzy); 
}; 

a(); 

jsfiddle

+0

我已经编辑了原来的问题,以正确反映我的测试案例。 [即改变.sort为.sort();]所以,谢谢你发现Xotic750,但现在回到原点。正如我所说的,一个案件起作用,而另一个案件中的相同案件则失败。 – 2013-05-13 03:29:42

+0

你能否为你的问题创建一个jsfiddle,一开始我没有“lrw0.js”的副本。你需要帮助我们来帮助你。 – Xotic750 2013-05-13 03:33:45

+0

再次感谢你Xotic750。我创建了一个新的'lrw0.js'文件,其中包含一行:“onmessage = function(event){postMessage('');}”现在排序在两种情况下都起作用。我将逐步重新设置已删除的逻辑,直到错误再次出现,并确保发布结果。我会尝试并在此之前将其关闭。 – 2013-05-13 04:34:50