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

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

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

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

let john = new Person();

5f00a6a9a9b62492539891.png
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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