Я написал функцию CoffeeScript, которая напоминает этот придуманный пример:
my_func = (a, b, use_args = false) ->
if use_args?
other_func 'foo', a, b, 'bar'
else
other_func 'foo', 'bar'
Это компилируется в следующий JavaScript:
var my_func;
my_func = function(a, b, use_args) {
if (use_args == null) {
use_args = false;
}
if (use_args != null) {
return other_func('foo', a, b, 'bar');
} else {
return other_func('foo', 'bar');
}
};
Существует ли СУХОЙ подход к этой функции, который бы исключил повторный вызов other_func
? Что-то вроде:
my_func = (a, b, use_args = false) ->
other_func 'foo', a if use_args?, b if use_args?, 'bar'
но это на самом деле синтаксически правильно? Надеюсь, я не пропустил что-то очевидное здесь. Я не уверен, что CoffeeScript предоставляет удобный способ сделать это, или есть просто лучший шаблон JavaScript, который я должен использовать.
Между прочим, я не могу изменить other_func
для использования других параметров, поскольку на самом деле это _gaq.push()
, часть библиотеки Google Analytics, которая добавляет информацию об отслеживании в очередь.