Почему можно переназначить переменную, содержащую ссылку на константу? - PullRequest
0 голосов
/ 18 ноября 2018

Почему можно переназначить переменную, содержащую ссылку на константу?

const a = {}

var b = a

console.log(a, b)

b = { a: 1 }

console.log(a, b)

Не то, чтобы я ожидал, что это будет невозможно (я предполагаю «тип объявления» (что будет правильным термином здесь?) Переменной (const, let, var) не передается при присваивании, а определяется только при объявлении).

Кто-нибудь имеет явную ссылку на то, как это работает в деталях?

1 Ответ

0 голосов
/ 18 ноября 2018

Я предполагаю, что тип переменной (const, let, var) не передается при присваивании, а определяется только при объявлении.

True.a объявлено как const, b объявлено как var.Это две разные переменные, и при назначении ничего не меняется.Вы можете назначить новое значение для b (что вы делаете дважды), но вы не можете назначить новое значение для a после инициализации.То, что вы используете значение a в присваивании b, совершенно не имеет значения, и не имеет значения, что это за значение (примитив, изменяемый объект или неизменный объект).) либо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...