Задать вопрос
@Aesteria

Почему ключевое слово 'this' при вызове функции-конструктора выводит свои свойства до присваивания значений?

Я не совсем понимаю, что мне выводится в инструментах разработчика. Вроде бы и пустой объект, как положено, но почему-то, при раскрытии, свойства, которые не были заданы на этапе выполнения первого console.log() присутствуют в объекте
function Person() {

    console.log(this);
    this.firstname = 'John';
    this.lastname = 'Doe';
    console.log(this);
}

let john = new Person();

5f00a6a9a9b62492539891.png
  • Вопрос задан
  • 57 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
hzzzzl
@hzzzzl
Aesteria см синюю иконку i, если на нее навести мышкой, то будет пояснение почему так

function Person() {

    console.log('before', this.firstname, this.lastname);
    this.firstname = 'John';
    this.lastname = 'Doe';
    console.log('after', this.firstname, this.lastname);
}

let john = new Person();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы