Jquery 匿名函数是否比调用函数更有效?
我刚刚开始学习jQuery。我更像是一个html+css网页设计师,所以你可能知道函数需要一点适应,尤其是匿名函数 那么,如果Jquery 匿名函数是否比调用函数更有效?,jquery,Jquery,我刚刚开始学习jQuery。我更像是一个html+css网页设计师,所以你可能知道函数需要一点适应,尤其是匿名函数 那么,如果 $('p.expander').toggle( function() { $(this).prev().addClass('open'); }, function() { $(this).prev().removeClass('open'); } ); 然后说 function toggle1 () { $(this).pre
$('p.expander').toggle(
function() {
$(this).prev().addClass('open');
},
function() {
$(this).prev().removeClass('open');
}
);
然后说
function toggle1 () { $(this).prev().addClass('open');}
function toggle2 () { $(this).prev().removeClass('open');}
$('p.expander').toggle(toggle1, toggle2);
如果只使用一次,是否使用匿名函数?如果要多次使用函数,应该调用它吗
正如标题所说,一个比另一个更有效率吗?因为似乎99%的文章都使用匿名文章。我发现有时很难阅读代码,因为我忘记了分号或括号的含义 名字,这就是区别。两者在运行时是等效的。只是如果你定义了一个匿名函数,你就不能在其他地方重用它。在不打算重用此代码的情况下,它非常有用。如果要重用命名函数,请使用该函数 下面是一个可以在多个位置重用命名函数的示例:
$('p.expander').toggle(toggle1, toggle2);
$.post('/foo/bar', toggle1);
$('a.foo').click(toggle2);
匿名函数和非匿名函数之间没有性能差异。
如果只调用函数一次,则不必调用函数名
如果要调用同一函数两次或两次以上,则必须命名该函数。在这种特定情况下,没有区别。但请考虑:
$(document).ready( function(){
var a, b, c,
d, e, f,
g, h, i;
$('p.expander').toggle(
function() {
$(this).prev().addClass('open');
},
function() {
$(this).prev().removeClass('open');
}
);
});
vs
在这种情况下,匿名函数包含更大的环境(使用更多内存),因为它们知道
a、b、c、d、e、f、g、e、h、i
,除非浏览器对其进行优化。这很有趣。在下面的例子中,他们不知道变量a-i?为什么上面的例子用得更多?它如何拥有一个更大的环境…?@Ali不,它们没有,因为它们被声明在范围之外。尽管你很难找到一个不优化它的浏览器。
function toggle1 { $(this).prev().addClass('open');}
function toggle2 { $(this).prev().removeClass('open');}
$(document).ready( function(){
var a, b, c,
d, e, f,
g, h, i;
$('p.expander').toggle( toggle1, toggle2 );
});