Определение функций для передачи в качестве аргументов - PullRequest
1 голос
/ 12 августа 2011

Хорошо, я смотрел на функции и использовал их в качестве аргументов.Допустим, у меня есть функция, которая принимает функцию и выполняет ее:

function run(someFunction,someArgument) {
    someFunction(someArgument);
}

Я вижу, что могу передать существующую функцию, скажем:

function foo(bar) {
    // foo that bar!
}

Путем вызова run(foo,bar); Iтакже можно создать функцию в объекте на лету и запустить его:

var whiteBoy = {
    playThat: function(funkyMusic) {
        // funk out in every way
    }
};

А затем я вызываю run(whiteBoy.playThat,funkyMusic); Что я хотел бы сделать, это определить функцию в вызове,вот так:

run(/* define a new function */,relevantArgument);

Как бы я поступил так?

Ответы [ 2 ]

5 голосов
/ 12 августа 2011

Как это:

run(function(funkyMusic) {
    // funk out in every way
}, relevantArgument);

Вы были очень близки, когда писали это:

var whiteBoy = {
    playThat: function(funkyMusic) {
        // funk out in every way
    }
};

То, что вы сделали, это определило функцию и присвоило ее свойству playThat - единственное изменение, которое я сделал, - это определение функции и передача ее в качестве аргумента вместо присвоения ее чему-либо.

2 голосов
/ 12 августа 2011
run(function(when)
   { 
      alert("play that funky music " + when);
   },
  "noooow!");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...