关于回调函数的jQuery术语

时间:2012-08-30 20:12:36

标签: javascript jquery terminology

$('#foo').click(function(){  });

function(){ }是匿名函数还是自调函数?两者之间有什么区别?

4 个答案:

答案 0 :(得分:9)

没有名称/引用的函数称为匿名函数。 $('#foo').click(function(){ });内的函数是一个匿名函数。

自调用函数是在定义后立即调用的函数。

(function () { })(); - >是一个自我调用的功能。

答案 1 :(得分:5)

这是一个匿名函数。

顾名思义,“自调用函数”是一个调用自身的函数。

像这样:

(function(){
    console.log('hi');
}());

答案 2 :(得分:1)

是的,这是一个匿名函数。我不知道你的'自我调用函数'是什么意思,也许这就是:

(function(){alert("hello")}())

这是一个你定义然后立即调用的匿名函数 - 函数后面的括号是导致函数执行的原因。

在第一种情况下,您正在创建一个函数,您希望javascript在将来的某个时间执行,即单击html元素时。 js将函数存储在某处,然后当单击html时,js调用该函数。

所以区别在于一个函数执行NOW,一个函数执行LATER。

答案 3 :(得分:0)

自我调用功能相当于:

function self_invoke(params...) {...};
function(args...);

使用匿名函数相当于:

function anonymous(params...) {...};
$('#foo').click(anonymous);

在这两种情况下,不同之处在于命名空间不会被小函数的名称污染。