排序比较如何从数组中获取参数

how does sort comparison get it's arguments from the array

我正在阅读 JavaScript For Web Developer 第 3 版,但我不知道它是如何工作的。我了解比较功能的工作原理。但是values.sort(比较);让我困惑。比较查看 2 个参数并比较它们。但我没有传递 2 个参数。即使我确实向函数传递了 2 个参数,它如何将自己与数组中的其余项目进行比较?排序功能是否在我不知道的后台执行某些操作?如果是这样,它是如何工作的? 提前谢谢你:)

function compare(value1, value2) 
{
 if (value1 < value2) {
 return 1;
 } else if (value1 > value2) {
 return -1;
 } else {
 return 0;
 }
}

var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values); //15,10,5,1,0

比较函数是您提供给排序函数的回调函数。排序函数将使用某种算法对列表进行排序。当排序函数的算法需要比较列表中的两个项目时,排序方法将调用两个项目的比较函数。