将列表展开到函数args?

时间:2014-09-03 06:43:32

标签: javascript coffeescript apply splat unroll

给定一个参数列表和一个双元函数:

args = [5, 6]
f = ((y,z)->y*z)

如何将args展开为函数参数? - 例如在Python中你可以做到:f(*args)

我尝试了什么(我想更多的JavaScript风格):

Function.call.apply(f, args)
# When that failed, tried:
((y,z) -> y*z).call.apply(null, [5,6])

1 个答案:

答案 0 :(得分:1)

使用f(args...)

f = (x, y) -> x + y
list = [1, 2]
console.log(f(list...)) # -> 3

你也可以将它与常规参数混合搭配:

f = (a, b, c, d) -> a*b + c*d
list = [2, 3]
console.log(f(1, list..., 4)) # -> 1*2 + 3*4 == 14