gpt4 book ai didi

javascript - 函数调用时是否可以使用解构?

转载 作者:行者123 更新时间:2023-11-30 09:19:23 24 4
gpt4 key购买 nike

我想像这样在构造函数调用中直接使用解构:

signup: async (userInfo) => {
const user = new User({ email, password, privacyPolicyConsent, username } = userInfo);
}

但是参数是未定义的。

我想防止通过重新声明注入(inject)不需要的参数,因此我不想像这样传递整个对象:

signup: async (userInfo) => {
const user = new User(userInfo);
}

目前我的工作解决方案如下:

signup: async (userInfo) => {
const { email, password, privacyPolicyConsent, username } = userInfo;
const user = new User({ email, password, privacyPolicyConsent, username });
}

但我觉得我可以用更好的方式来写这部分。我错过了什么?感谢任何有关最佳实践的建议。

最佳答案

可以直接Destruct,如下所示

signup: async ({ email, password, privacyPolicyConsent, username }) => {
const user = new User(email,password,privacyPolicyConsent,userName);
}
signUp(userInfo);

更新

如果未定义发送,这将阻止处理破坏错误所以你需要在发送之前检查 userInfo

if(userInfo) signUp(userInfo);

更新 2

如果你不想检查未定义的 userInfo您可以在方法级别分配默认值,如下所示

signup: async ({ email, password, privacyPolicyConsent, username }={}) => {
const user = new User(email,password,privacyPolicyConsent,userName);
}

关于javascript - 函数调用时是否可以使用解构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52721570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com