我尝试在没有上下文的情况下定义回调函数:
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);
答案 0 :(得分:1)
您从未在value
函数中定义变量index
和mySort
。
此外,cb
函数缺少返回语句。
答案 1 :(得分:0)
您正在传入cb,它被识别为一个函数,会被处理并尝试调用
return callback.call(context, value, index, list).sort();
变量值(在此上下文中)不存在,这会导致参考错误。