在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
,這是沒有爲對象定義的)。
獎勵問題,對於對象,沒有符號迭代器。 –