繁体   English   中英

我可以用更简洁的方式声明变量吗

[英]Can I declare variable in a more cleaner way

有没有办法让我的代码保持干净

diagMsg = homu.message['await'].welCH.stat
diagMsg.color = toggle === true ? '#ffffff':'#2c2f33'
diagMsg.msg = diagMsg.msg.replace('{{stat}}', 'Disabled')
diagMsg.foot = diagMsg.foot.replace('{{prefix}}', homu.guildSettings.get(message.guild.id, 'prefix'))
        console.log(diagMsg)

我想知道我是否可以在不一遍又一遍地声明 diagMsg 的情况下做同样的事情......就像这样

diagMsg = homu.message['await'].welCH.stat
        .color = toggle === true ? '#ffffff':'#2c2f33'
        .msg = diagMsg.msg.replace('{{stat}}', 'Disabled')
        .foot = diagMsg.foot.replace('{{prefix}}', homu.guildSettings.get(message.guild.id, 'prefix'))
        console.log(diagMsg)

您可以创建一个单独的 object 并分配所有新属性,然后使用Object.assign()

diagMsg = homu.message['await'].welCH.stat
Object.assign(diagMsg, {
   color: toggle === true ? '#ffffff':'#2c2f33',
   msg: diagMsg.msg.replace('{{stat}}', 'Disabled'),
   foot: diagMsg.foot.replace('{{prefix}}', homu.guildSettings.get(message.guild.id, 'prefix'))
})

尝试 object 传播:

const diagMsg = {
  ...homu.message['await'].welCH.stat,
  color: toggle === true ? '#ffffff':'#2c2f33',
  msg: diagMsg.msg.replace('{{stat}}', 'Disabled'),
  foot: diagMsg.foot.replace(
    '{{prefix}}', 
    homu.guildSettings.get(message.guild.id, 'prefix')
  )
};

为什么不在 object 文字之外放置一些声明?

const initalMessage = homu.message['await'].welCH.stat;
const color = toggle === true ? '#ffffff':'#2c2f33';
const msg = initalMessage.msg.replace('{{stat}}', 'Disabled');
const foot = initalMessage.foot.replace('{{prefix}}', homu.guildSettings.get(message.guild.id, 'prefix'));

const diagMsg = {
  ...initalMessage, 
  color,
  msg,
  foot
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM