2016-05-12 2 views
0

у меня есть что-то подобное в angularJS:Как передать функцию javascript в другую функцию без предопределения?

var onErr = function() {}; 
var sent = httpService.handleRequest(onErr); 

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

Что я точно сказать, что-то вроде этого:

// no definition 
var sent = httpService.handleRequest(new function1, new function2); 
+0

Вы действительно хотите что-то передать? Не могли бы вы просто передать null? –

ответ

3

Вы можете создать функцию инлайн:

var sent = httpService.handleRequest(function() {}, function() {}); 

Хотя я не ясно, о том, почему возвращаемое значение функции, которую вы pass in имеет какое-либо отношение к тому, почему вы хотите объявить их inline, а не заранее?

+0

О, да, я делал что-то не так, из-за этого я получал ошибку. Я хочу, чтобы они были встроены, потому что я не хотел иметь 5 или 6 строк для определения пустой функции. В любом случае, благодарю Вас. –

+0

Если у вас есть пустые функции, пройдите много, просто создайте функцию '' nop' и передайте ее. 'var nop = function() {};' Таким образом, вы не создаете новую пустую функцию каждый раз. – Chad

2

Вы можете использовать оригинальную концепцию без функции работы, как и у вас.

var nop = function() {}; 
var sent = httpService.handleRequest(nop, nop); 
+1

noop: D Лучшая функция когда-либо! – Kulvar

2

Вы можете использовать анонимную функцию.

var sent = httpService.handleRequest(function() {}, function() {}); 

Анонимная функция - это функция без имени и может использоваться как параметр другой функции.

Смежные вопросы