jQuery:在函数中作为参数传递时,回调和calback()的区别

jQuery:在函数中作为参数传递时,回调和calback()的区别,jquery,Jquery,在回调函数名中添加括号并作为参数传递给函数时有什么区别。给定函数foo(){…} 表达式foo作为函数计算 表达式foo(可选,参数)计算为调用该函数的返回值(该函数可能是函数,也可能不是函数,具体取决于foo的编写方式) 当回调被传递时,您正在传递对函数的引用。被调用的函数获取对原始函数回调的引用 传递callback()时,首先执行函数callback,然后传递该函数的返回值。假设有一个函数需要布尔参数: 函数myFunction(myBoolArg){ // ... } 您可以通过直接

在回调函数名中添加括号并作为参数传递给函数时有什么区别。

给定
函数foo(){…}

  • 表达式
    foo
    作为函数计算
  • 表达式
    foo(可选,参数)
    计算为调用该函数的返回值(该函数可能是函数,也可能不是函数,具体取决于
    foo
    的编写方式)

回调
被传递时,您正在传递对函数的引用。被调用的函数获取对原始函数
回调的引用


传递
callback()
时,首先执行函数
callback
,然后传递该函数的返回值。

假设有一个函数需要布尔参数:

函数myFunction(myBoolArg){
// ...
}
您可以通过直接传递布尔值来调用它:

myFunction(true);
或者您可以创建一个变量,并传递该变量:

var myBoolVar=true;
myFunction(myBoolVar);
函数也是一样的。假设您的函数现在需要一个函数参数:

函数myFunction(myCallbackArg){
// ...
}
您可以通过直接传递函数来调用它:

myFunction(函数(){
//回调体。。。
});
或者,您可以创建一个变量,并传递该变量(请参见和之间的区别,以及
在这种情况下,此
将丢失):

var myCallbackVar=函数(){
//回调体。。。
};
myFunction(myCallbackVar);

如果将
()
附加到through(即
myFunction(myCallbackVar())
),则首先执行
myCallbackVar
,返回值将传递给
myFunction
。这实际上是有效的,只要
myCallbackVar
返回一个函数:

var myCallbackBuilder=函数(){
返回函数(){
//回调体。。。
}
/*
或:
var myCallbackVar=函数(){
//回调体。。。
};
返回myCallbackVar;
*/
};
myFunction(myCallbackBuilder());