如何将匿名函数移出

Phi*_*enn 2 jquery

我有一个带有错误回调的 $.ajax 调用:

error: function(result){
$('#msg').text(result.statusText).addClass('err');
}
Run Code Online (Sandbox Code Playgroud)

我想将其更改为更通用的:

error: myError(result)
Run Code Online (Sandbox Code Playgroud)

然后就靠它自己了:

function myError(theError){
$('#msg').text(theError.statusText).addClass('err');
} 
Run Code Online (Sandbox Code Playgroud)

但是萤火虫告诉我“结果”没有定义。

问:我是这样称呼的吗?

error: function(result){
myError(result);
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 5

您只需要函数名称,而不是任何括号或参数,如下所示:

error: myError
Run Code Online (Sandbox Code Playgroud)

它将使用与匿名函数相同的参数调用该函数引用,现在它正在尝试实际执行该函数(result作为参数......它无法找到的变量)并将结果分配为error处理程序,您希望函数本身作为错误处理程序实际运行。