Javascript 为什么我们应该在jQuery中使用匿名函数,而不是直接使用函数?

Javascript 为什么我们应该在jQuery中使用匿名函数,而不是直接使用函数?,javascript,jquery,Javascript,Jquery,一些jQuery方法期望函数作为参数,但要工作,它们应该接收匿名函数作为参数,而不是直接接收函数,如以下示例所示: $("a").on("click", function () { retornaNada(); }); 而不是 $("a").on("click", retornaNada()); 将retronada()视为一个没有任何代码体的函数。为什么我们不能直接传递函数?它正在工作,但您只需要传递函数引用(名称),如下所示: function test (e) { cons

一些jQuery方法期望函数作为参数,但要工作,它们应该接收匿名函数作为参数,而不是直接接收函数,如以下示例所示:

$("a").on("click", function () { retornaNada(); }); 
而不是

 $("a").on("click", retornaNada());

retronada()
视为一个没有任何代码体的函数。为什么我们不能直接传递函数?

它正在工作,但您只需要传递函数引用(名称),如下所示:

function test (e) {
    console.log('test ok');
}
$('body').on('click', test);

您需要向它们传递对函数的引用,而不是“内部函数”。因此,您可以在(“单击”,returnanaada)上执行
。不确定为什么投票被否决。。。这个人显然是javascript新手,不了解它的工作方式Downvote的人可以告诉我原因吗?另外,有些函数需要访问它们创建的范围内的参数,所以使用闭包:代码示例都使用了不匹配的括号,错误的句号和撇号。将其改为“传递函数引用”而不是“仅传递函数名”。你所说的是真的,但并不完整。名字并不总是参考<代码>函数(e){/}
也是一个不按名称传递的引用。这正是我想表达的观点。另一种说法是“传递函数,而不是结果”。当然,除非函数结果本身就是一个函数。显然,这家伙是JS的新手,他用不太专业的术语解释得更清楚。如果是一个引用、结束,或者谁在乎还有什么他真的不在乎,直到他理解了错误的基本原理。…@Goran.it你应该总是给出一个完整的例子,介绍OP的技术术语。这不是对你答案的攻击。这是一个改进它的请求。请注意,按名称引用函数是引用函数的一种形式。然后,向他展示它等价于传递一个匿名函数,它也是一个函数引用。