将参数传递给回调函数,该函数在传递时按名称引用

时间:2013-08-18 12:18:27

标签: javascript

我有两个功能:

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

函数'array_sort'使用'compare_values'函数比较值并仅传递两个值,而第三个参数'case_insensitive'应该在使用函数'array_sort'时传递。我知道如何做的唯一方法是将'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);

我还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

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

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

array_sort(my_array, makeWrapper(true));