为什么我的回调参数未定义?

时间:2014-06-02 08:25:09

标签: javascript sorting callback undefined

我尝试在没有上下文的情况下定义回调函数:

return callback(value, index, list).sort()

但这也不起作用。不知道为什么我收到错误:“ReferenceError:value not defined”

var arr = [1,4,2,8,3];

var mySort = function(list, callback, context) {
    if (typeof callback !== "function") 
        return list.sort(); 
    else if (typeof callback === "function") {
        return callback.call(context, value, index, list).sort();
    }
}; 

var cb = function(num) {num*3;};

mySort(arr, cb);

//console.log(arr);

2 个答案:

答案 0 :(得分:1)

您从未在value函数中定义变量indexmySort。 此外,cb函数缺少返回语句。

答案 1 :(得分:0)

您正在传入cb,它被识别为一个函数,会被处理并尝试调用

return callback.call(context, value, index, list).sort();

变量(在此上下文中)不存在,这会导致参考错误。