作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何让它工作:
(()=>{let a={}, b; console.log((b=a[`complex and long expression`])=9*b+1}))()
我想在赋值表达式中重用目标的值。
我想避免写这么长:
(()=>{let a={}, b; console.log(a[`complex and long expression`]=9*a[`complex and long expression`]+1)})()
最佳答案
您修改后的问题询问如何做到这一点:
(()=>{let a={}, b; console.log(a[`complex and long expression`]=9*a[`complex and long expression`]+1)})()
无需重复。
唯一的方法是重复对a
的属性访问,但是没有理由重复复杂而长的表达式
:
(()=>{let a={}, ex = `complex and long expression`; console.log(a[ex] = a[ex] * 9 + 1}))()
如果它只是 * 9
,就像您原来的问题一样,您可以使用复合赋值:
I want to avoid writing this long:
(()=>{let a={}, b; console.log(a[`complex and long expression`]=9*a[`complex and long expression`]}))()
您可以使用*= 9
同时进行乘法和赋值。
(()=>{let a={}; console.log(a[`complex and long expression`]*=9}))()
// ---------------------------------------------------------^^
*=
获取左侧操作数的值,将其乘以右侧操作数,然后赋值回左侧操作数。大多数数学和按位运算都存在这些复合赋值运算符。
关于javascript - 如何在其赋值表达式中重用目标的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703794/
我是一名优秀的程序员,十分优秀!