将函数作为参数传递,然后在jquery函数中执行它

时间:2012-04-02 10:36:05

标签: javascript function callback

我想知道用jQuery制作这个简单(也许是愚蠢)的方法是什么。

我有这样的功能:

function setSomething() { 
    make some stuff; 
}

然后是另一个这样的函数:

generalFunction(par1, par2, par3) { 
    do other stuff; 
    execute function called in par3;    
}

好吧,如果我写这样的东西它不起作用:

c=setSomething(); 
generalFunction(a, b, c);

那么将函数作为另一个函数的参数调用然后在其中执行它的方法是什么?

我希望我足够清楚。

任何帮助将不胜感激。

提前感谢您的关注。

2 个答案:

答案 0 :(得分:14)

省略括号,然后可以在“generalFunction”函数中将参数作为函数调用。

setSomething(){
   // do other stuff  
}

generalFunction(par1, par2, par3) { 
    // do stuff...

    // you can call the argument as if it where a function ( because it is !)
    par3();
}

generalFunction(a, b, setSomething);

答案 1 :(得分:0)

以下是那些想要将参数传递给作为回调传入的函数的人的另一个例子:

$(document).ready(function() {
  main();
});

function main() {
  alert('This is the main function');
  firstCallBack(1, 2, 3, secondCallBack);
};

function firstCallBack(first, second, third, fourth) {
  alert('1st call back.');
  var dataToPass = first + ' | ' + second;
  fourth(dataToPass);
};

function secondCallBack(data) {
  alert('2nd call back - Here is the data: ' + data)
};

这是JSFiddle链接:https://fiddle.jshell.net/8npxzycm/