我有这段代码:
sliderData () {
let sliderData = this.product.slider;
sliderData.title = 'test';
// {{ $t('related_product_slider_header', { category: 'hello', designer: 'hey' }) }}
return sliderData;
}
然后es-lint(prefer-const)警告我并告诉我:
'sliderData' is never reassigned. Use 'const' instead.eslint(prefer-const)
但这是一个谎言,不是吗?我确实将对象向下分配了一行。
我真的不明白。
最佳答案
您无需重新分配sliderData
。您更改属性。就JS而言,“分配”对象仅是指将其用作分配运算符的左侧术语,如:sliderData = someObject;
所以:
const sliderData = this.product.slider;
sliderData.title = 'test'; //This is fine
sliderData = new Object(); //error
注意:这是因为“ sliderData”的值是包含对象地址而不是对象本身的引用:这也是为什么两个对象之间的等效性失败的原因,除非为一个对象分配了另一个的值。
关于javascript - 永远不会重新分配“对象”。使用'const'代替,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60172599/