我有一个函数,在 Javascript 中
function asd(foo, bar, baz) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
这三个参数中的每一个都是必需的。
假设我将这些参数分组为一个对象:
var x = {
foo: 10,
bar: 20,
baz: 30
};
Run Code Online (Sandbox Code Playgroud)
我asd可以通过以x某种方式“解压”对象来调用函数吗?这可以通用吗?即,不知道 的签名asd。
我正在寻找类似 kwargs 在 Python 中解包的东西:
def asd(foo, bar, baz):
# ...
kwargs = {'foo': 10, 'bar': 20, 'baz': 30}
asd(**kwargs)
Run Code Online (Sandbox Code Playgroud)
“不,不可能”的回答是可以接受的。我只想知道这在 Javascript 中是否可行。
Aar*_*n J 13
现在这在 JavaScript 中是可能的。另一条评论指出这本身不可能是不正确的(并且在发布时不是)。它是在您提出问题大约一年后添加的 - 为多年后登陆这里的人们添加答案。
您的函数只需更改为:
function asd({foo, bar, baz}) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
你这样称呼它:
var x = {
foo: 10,
bar: 20,
baz: 30
};
asd(x);
Run Code Online (Sandbox Code Playgroud)
请参阅MDN 解构分配。