提供给匿名函数的参数

时间:2013-07-29 15:16:37

标签: javascript arrays

我编写了一个自定义排序例程(sortArray(a, b))来对我拥有的数组进行排序。

如果我这样称呼它

    a.sort(function (v1, v2) { return sortArray(v1, v2); });

一切正常。

如果我这样称呼它:

    a.sort(sortArray(v1, v2));

v1和v2引发错误,因为未定义。

有没有办法利用.sort()方法传递的参数而不创建一个匿名函数来初始接收它们,然后将它们传递给用户定义的函数?

1 个答案:

答案 0 :(得分:6)

Array.prototype.sort需要一个函数引用,但是您尝试调用sortArray并传递该调用的返回值。您应该只传递对函数的引用:

a.sort(sortArray);

由于sortArray已经预期有两个参数,它应该正常工作,v1v2将自动传递。