为什么这个Javascript语法有效?

时间:2017-12-14 06:47:01

标签: javascript ecmascript-6

我在一个模块中有以下代码:

export let person = {
     name : "henry",
     age :  5
}

在我导入的另一个模块中:

import {person} from './person'

尝试更改人员模块时:

person = {
     name : "joe",
     age : 20
 }

我得到一个语法错误。 但是,当我更改person对象上的任何属性时,它会成功完成

person.name = "joe"  // works
person.age =50  //works

为什么会这样?

1 个答案:

答案 0 :(得分:1)

执行import {person} from './person'时,您正在使用导出的对象获得const person

您无法更改person对象的内容,但是,在这种情况下唯一的常见问题是refrence to object,您可以更改内容对象本身。

例如:

const obj = {};
obj.stackoverflow = "Cool site"; // works!
obj = "stackoverflow"; //TypeError: Assignment to constant variable