передать функцию в качестве параметра, а затем выполнить ее в функции jquery - PullRequest
7 голосов
/ 02 апреля 2012

Мне было интересно, как можно сделать эту простую (и, возможно, глупую) вещь с помощью 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 ]

14 голосов
/ 02 апреля 2012

пропустите скобки, затем вы можете вызвать параметр как функцию внутри вашей функции "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);
0 голосов
/ 09 декабря 2015

Вот еще один пример для тех, кто хочет передать параметр в функцию, которая передается как обратный вызов:

$(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/

...