【问题标题】:why react javascript const object's members can be modified [duplicate]为什么反应javascript const对象的成员可以修改[重复]
【发布时间】:2021-06-09 21:22:40
【问题描述】:
正如here 所示
// allowed
const helloWorld = {
text: 'Welcome to the Road to learn React'
};
helloWorld.text = 'Bye Bye React';
有效。
但是为什么helloworld,作为一个常量对象,它的成员可以被修改呢? const 在 react javascript 中的本质是什么?
【问题讨论】:
标签:
javascript
ecmascript-6
【解决方案1】:
const 声明创建一个对值的只读引用。
当您将对象分配给 const 时。您正在创建对该对象的引用。
const helloWorld = {
text: 'Welcome to the Road to learn React'
};
现在 const helloWorld 不知道它所持有的实现或内部结构。 Javascript 刚刚告诉“helloWorld”“我给你这个对象,拿着它。听着!!!伙计!!!,你不应该拿着别的东西”。 p>
所以,helloWorld 也是如此。
它拥有相同的对象。但是人们可以改变物体的内部。
因此,
人们可以做以下事情:
helloWorld.text = 'Bye Bye React';
这里 helloWorld 仍然持有同一个对象。 helloWorld 将允许你对它所持有的东西做任何事情。但是,它不会做的是:“它不会放弃它”
所以,人们不能做以下事情:
helloWorld = "something else";
人们不能要求 helloWorld 持有其他东西。
【解决方案2】:
Const 将定义一个不可重新分配的对象,但我们可以编辑对象中的属性。使用 const 不会改变对象的结构。