请大佬帮忙看看这句代码的逻辑

['btn-' + this.size] : this.size !== '',

['btn-disabled'] : this.disabled

变量什么的不重要,主要是这里面中括号与冒号的使用问题,看不懂这里面的逻辑

有冒号肯定是在对象字面量中,分隔属性名和属性值,如

var obj = {
    ['btn-' + this.size] : this.size !== '',
    ['btn-disabled'] : this.disabled
};

[]方括号是es6的新语法,先拼接[]中字符串,然后将其作为对象的属性名,等同:obj['btn-' + this.size] = (this.size !== '')

这个按钮应该是数组吧,应该是动态生成的,这个是对数组最后新建的按钮设置状态。

参考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Object_initializer#%E8%AE%A1%E7%AE%97%E5%B1%9E%E6%80%A7%E5%90%8D

 

实际上就是字符传拼接加判断

['btn-' + this.size] : this.size !== '', // 比如this.size=5则结果为btn-5:true或者false,this.size !== '' this.size不等于空就为true否则为false

['btn-disabled'] : this.disabled //btn-disables:this.disabled

 

中括号里面的 ,拼接字符串啊,作为一个键名,

冒号后面的是表达式,结果是一个布尔值,作为键值,

就是一个键值对,很难理解?

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y