Как передать параметр (ы) в функцию, где сама функция является параметром? - PullRequest
3 голосов
/ 09 декабря 2010

Итак, я хочу передать paramA и paramB в functionTwo () при вызове functionOne (), например, так:

function functionOne( myFunc )
{
   $aj = new Ajax('hhtp://myurl', {

      method: 'get',
      update: 'myDiv',
      onComplete: myFunc

   }).request();

}

function functionTwo( paramA, paramB )
{
  alert( paramA );
  alert( paramB );
}

// somehow, i want to be able to pass paramA and paramB here:
functionOne( functionTwo );

Возможно ли это?Любая помощь приветствуется.Спасибо

Редактировать

Что, если functionOne () и functionTwo () были определены в классе?

т.е.раньше это работало (без параметров):

this.functionOne ( this.functionTwo );

Но это не работает (с параметрами)

this.functionOne (function() { this.functionTwo(paramA, paramB); });

Ни как-то так:

this.functionOne (function() { this.call(functionTwo, paramA, paramB) });

пс.JS Newbie

Ответы [ 2 ]

4 голосов
/ 09 декабря 2010

Звучит так, как будто вы пытаетесь передать functionTwo в functionOne с указанным набором параметров.Если это так, используйте следующее

functionOne (function() { functionTwo(paramA, paramB); });
2 голосов
/ 09 декабря 2010

Проверьте func.call () и func.apply () на сайте разработчиков Mozilla.Оба позволяют вызывать ссылку на функцию с динамическими аргументами.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...