0

我有两个功能:

array_sort(array, compare_function)
compare_values(value1, value2, case_insensitive)

函数 'array_sort' 使用 'compare_values' 函数来比较值并且只传递两个值给它,而使用函数 'array_sort' 时应该传递第三个参数 'case_insensitive'。我知道如何做到这一点的唯一方法是将“compare_values”函数包装到另一个函数中:

var my_array = [];
var case_insensitive = true;
var wrapper = function(value1, value2) {
    compare_values(value1, value2, case_insensitive)
}
array_sort(my_array, wrapper);

有没有其他方法可以做到这一点?

4

1 回答 1

1

您可以编写另一个函数来抽象包装器:

function makeWrapper(case_insensitive) {
    return function wrapper(value1, value2) {
        compare_values(value1, value2, case_insensitive)
    };
}

array_sort(my_array, makeWrapper(true));
于 2013-08-18T13:35:50.387 回答