Javascript 用命名函数替换匿名函数(在jQuery中)

Javascript 用命名函数替换匿名函数(在jQuery中),javascript,jquery,parameters,anonymous-function,Javascript,Jquery,Parameters,Anonymous Function,我的原始(工作)代码如下所示: jQuery().ready(function ($) { $('[id="errorMessages"]').ajaxStart(function () { $(this).html(""); }); $('[id="errorMessages"]').ajaxError(function (e, jqxhr, settings, exception) { //... }); }); 当我试图将匿

我的原始(工作)代码如下所示:

jQuery().ready(function ($) {
    $('[id="errorMessages"]').ajaxStart(function () {
        $(this).html("");
    });
    $('[id="errorMessages"]').ajaxError(function (e, jqxhr, settings, exception) {
        //...
    });
});
当我试图将匿名函数替换为命名函数调用时,比如:(我正在为某些需求进行POC,这需要这样的实现。)

我收到一个错误,说明参数“e”未定义。但是没有参数的函数似乎工作得很好

我想知道匿名函数是如何接收参数的,而调用外部函数时却无法接收参数


是否有方法将这些参数化匿名函数转换为常规函数调用。

如果将函数错误地分配给处理程序,请尝试以下操作:

jQuery().ready(function ($) {
    $('[id="errorMessages"]').ajaxStart(fs);
    $('[id="errorMessages"]').ajaxError(fe);
});
请注意,传递不带括号的函数名意味着您提供了该函数的引用,在事件发生时应使用该函数

附加事件时,您当前的代码将调用函数(因此您得到的
'e'未定义),并将函数的结果分配给事件处理程序。

在调用它
$('[id=“errorMessages”]')时,尝试将e替换为“”。ajaxStart(fs)不是
$('[id=“errorMessages”]')。ajaxStart(fs())
jQuery().ready(function ($) {
    $('[id="errorMessages"]').ajaxStart(fs);
    $('[id="errorMessages"]').ajaxError(fe);
});