Tho*_*ell 4 javascript sorting anonymous-function
我想知道是否可以将命名函数传递给Array.sort().我正在尝试做类似下面的逻辑,但显然它抱怨a没有被定义.
if (iWantToSortAscending) {
myArray.sort(sortAscending(a, b));
} else {
myArray.sort(sortDescending(a, b));
}
// my lovely sort functions
function sortAscending(a, b) {
...
sorty worty
...
}
function sortDescending(a, b) {
...
sorty worty differently
...
}
Run Code Online (Sandbox Code Playgroud)
显然,我可以让代码像下面一样工作,但确实如此,但我不想为了可读性和调试而使用匿名函数.
if (iWantToSortAscending) {
myArray.sort(function (a, b) {
...
sorty worty
....
}
} else {
...
Run Code Online (Sandbox Code Playgroud)
肯定是,但你必须引用该函数,而不是调用它,并且参数是自动传递的
myArray.sort(sortAscending);
Run Code Online (Sandbox Code Playgroud)
无论何时向函数添加括号和参数,都会立即调用它.
当你希望它被另一个函数调用时,例如作为回调函数sort(),你引用它,然后将括号括起来.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |