$('#foo').click(function(){ });
function(){ }
是匿名函数还是自调函数?两者之间有什么区别?
答案 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);
在这两种情况下,不同之处在于命名空间不会被小函数的名称污染。