我正在查看其他人的功能 Javascript 代码。为什么声明函数时参数中要有大括号?例如:
function createUser({username, password, name, weight}, f) {};
这是否只是强制执行和重命名传入对象中的键?这是在 model.js 中,所以它可能与验证有关?
跟进问题:当我尝试在我的机器上编译它时,如何才能不出错?我在这些奇怪的括号中的第一个得到“SyntaxError: Unexpected token {”。
最佳答案
这是一个 ES6 destructuring assignment .
此语法声明了一个带有两个参数的函数。
作为第一个传递的对象的 username
、password
、name
和 weight
属性的值参数将通过函数体中的变量 username
、password
、name
和 weight
提供。
第二个参数将通过变量 f
可用。
例如:
(function ({a,b}, c) {
return [a,b,c];
})({a:1, b:2, d:"ignored"}, 3); // [1,2,3]
关于javascript - 为什么在声明这个javascript函数时参数中有大括号? ( Node ,model.js 中的 MongoDB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33821678/