有没有一种方法可以在ES6中使用解构来即时重新分配对象值?

时间:2020-10-30 09:16:38

标签: javascript node.js ecmascript-6 axios

const user = {}
user.fname = John
user.lname = Doe


axios.post({
    url,
    headers,
    params: user // but here I want to have the fname set to Jane instead of John
}).then(...).catch(...)

我知道我可以设置它,但是当我使用该对象时,我需要立即进行设置。

谢谢。

3 个答案:

答案 0 :(得分:3)

并非完全是ES6,因为 objects 的扩展符号是较新的,但是您可以

axios.post({
    url,
    headers,
    params: { ...user, fname: 'Jane' }
}).then(...).catch(...)

答案 1 :(得分:2)

您可以使用传播语法来保留其他属性并覆盖所需的属性:

const user = {}
user.fname = John
user.lname = Doe


axios.post({
    url,
    headers,
    params: {...user, fname: "Jane"} 
}).then(...).catch(...)

答案 2 :(得分:2)

点差算子如何?

axios.post({
    url,
    headers,
    params: {
       ...user,
       fname: 'Jane' // but here I want to have the fname set to Jane instead of John
    }
}).then(...).catch(...)

您也可以像这样使用Object.assign

Object.assign(user, { fname: 'Jane' })