我编写了自定义排序例程 (sortArray(a, b)
) 来对我拥有的数组进行排序。
如果我这样调用它
a.sort(function (v1, v2) { return sortArray(v1, v2); });
一切正常。
如果我这样调用它:
a.sort(sortArray(v1, v2));
v1 和 v2 引发错误,因为未定义。
如果不创建一个匿名函数来初始接收它们,然后将它们传递给用户定义的函数,是否就无法利用 .sort() 方法传递的参数?
最佳答案
Array.prototype.sort
需要一个函数引用,但您正在尝试调用 sortArray
并传递该调用的返回值。您应该只传递对函数的引用:
a.sort(sortArray);
因为 sortArray
已经需要两个参数,所以它应该可以正常工作,v1
和 v2
将自动传递。
关于javascript - 提供给匿名函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927799/