调用函数时使用括号

时间:2016-07-20 23:32:56

标签: javascript jquery

我已经编写了一个函数,打算在几种情况下调用它。这是功能:

var responsive = function(){
    $('#menuicon').toggleClass('menuicon-res');
    $('.fixed-menu-item').toggleClass('res');
}

在某种情况下,调用该函数只有在它后面没有括号的情况下才能起作用:

$('#menuicon').click(responsive);

在另一个类似的情况下,调用该函数只有在它后面用括号写成时才有效:

$('#top').click(function(){
    $('html, body').animate({scrollTop: 0},500);
    responsive();
});

我想我理解第一种情况(没有括号)返回回调函数,第二种情况(w /括号)返回函数的输出。任何人都可以帮助解释为什么在这两种情况下调用我的函数的方式会发生变化吗?

感谢;

CPR

2 个答案:

答案 0 :(得分:3)

在第一个场景中,您将分配要在Click事件上运行的函数,click事件将执行调用。在第二种情况下,您自己调用该函数。

答案 1 :(得分:2)

您正在谈论的第一个案例是将您的函数作为事件侦听器连接,它将在触发事件时调用传递的函数

//this will execute when "#menuitem" is clicked
$('#menuicon').click(responsive);

你的第二个案例是你自己调用它,这里只是放responsive而不实际调用它将无能为力。

$('#top').click(function(){
    $('html, body').animate({scrollTop: 0},500);
    responsive();
});
相关问题