在Python中,我可以通过一个字典,它的键匹配参数的名字与**
(双图示)操作:参数解构(Python的双图示的当量)
def foo(a, b):
print (a - b)
args = {'b': 7, 'a': 10}
foo(**args) # prints 3
如何做ES6相同?这不起作用:
function foo(a, b) {
console.log(a - b)
}
args = {b: 7, a: 10}
foo(...args)
注:我正在寻找,因为我希望它可以使用任何一种方式,不会涉及改变的foo
签名的解决方案(有和没有解构)。所以下面应该工作:
foo(<magic>args);
foo(123, 456);
奖金的问题:为什么错误消息“undefined不是一个函数”?究竟什么是未定义的?
(由@Nina Scholz在评论中回答,这是因为...
要求其参数具有Symbol.iterator
,这是没有为对象定义的)。
奖励问题,对于对象,没有符号迭代器。 –