Answer

Answer

t.me/js_test

Ответ:

ReferenceError: Cannot access 'user' before initialization

Обьяснение:

Ошибка появляется, потому что точка с запятой пропущена после user = {...}.

JavaScript не вставляет автоматически точку с запятой перед круглой скобкой (user.go)(), поэтому читает этот код так:

let user = { go:... }(user.go)()

Теперь мы тоже можем увидеть, что такое объединённое выражение синтаксически является вызовом объекта { go: ... } как функции с аргументом (user.go). И это происходит в той же строчке с объявлением переменной let user, т.е. объект user ещё даже не определён, поэтому получается ошибка.

Код для проверки:

const user = {
  name: 'Джон',
  go: function () {
    console.log(this.name);
  },
}
(user.go)()




Report Page