$('#foo').click(function(){ });
是function(){ }
匿名函数,还是自调用函数?两者之间有什么区别?
$('#foo').click(function(){ });
是function(){ }
匿名函数,还是自调用函数?两者之间有什么区别?
没有名称/引用的函数称为匿名函数。里面的函数$('#foo').click(function(){ });
是一个匿名函数。
自调用函数是在定义后立即调用的函数。
(function () { })();
-> 是一个自调用函数。
那是一个匿名函数。
顾名思义,“自调用函数”是一个调用自身的函数。
像这样:
(function(){
console.log('hi');
}());
是的,它是一个匿名函数。我不知道你所说的“自调用函数”是什么意思,也许是这样的:
(function(){alert("hello")}())
那是您定义然后立即调用的匿名函数——函数后面的括号是导致函数执行的原因。
在第一种情况下,您正在创建一个希望 javascript 在未来某个时间(即单击 html 元素时)执行的函数。js 将函数存储在某处,然后当点击 html 时,js 调用该函数。
所以区别在于一个函数现在执行,一个函数稍后执行。
自调用函数等价于:
function self_invoke(params...) {...};
function(args...);
匿名函数的使用等价于:
function anonymous(params...) {...};
$('#foo').click(anonymous);
在这两种情况下,不同之处在于命名空间没有被小函数的名称污染。