使用()和不使用()调用函数有什么区别。当我们为变量分配函数时?

时间:2012-01-26 06:28:36

标签: jquery

我想知道当我们使用圆形括号()和没有括号()调用函数时有什么区别。假设我有一个像

这样的函数
function($) {

    var hideAnswers = function() {

        $('#faqGrid tr td').each(function(){

            var $td = $(this);
            $td.children('div .answer').hide();

        }); //end of $('#faqGrid tr td').each(fn)

    }; //end of var hideAnswers = function() {}

    var showMessage = function(message){

        alert(message);

    }; //end of var showMessage = function(){}

    hideAnswers();  //working
    hideAnswers;    // not working

}(jQuery); // end of  function($) {

第二个 hideAnswers; 现在正在使用此案例。我还想问我们什么时候将函数分配给变量,什么时候不变量?

另外假设我有一个按钮,点击其中我想调用此功能然后我们怎么称它为

<input type="button" onclick = hideAnswers(); />  // is it right?

如果我还想在我的xhtml页面上将值传递给此函数,该怎么办?像

<input type="button" onclick = showMessage("what is your name "); />  // is it right?

由于

2 个答案:

答案 0 :(得分:4)

()使函数执行其定义中的代码。没有(),你只是指代函数本身 - 这非常有用。您可以将函数存储在变量中并传递它们。

这可能有助于说明:

function someFunc(){
    alert("hello from someFunc");
}

function someOtherFunc(executeMe){
    executeMe();
}

someOtherFunc(someFunc);

答案 1 :(得分:2)

不同之处在于,如果您不使用(),则不会调用该函数。

只要写出函数的名称(如hideAnswers)就什么都不做。它曾用于将函数作为参数传递给另一个函数或将其分配给变量。它没有称之为。