我编写了一个类似于这个人为示例的 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');
}
};
这个函数是否有一种 DRY 方法可以消除对 的重复调用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 库的一部分,用于将跟踪信息添加到队列中。