@Aesteria

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

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

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

let john = new Person();

5f00a6a9a9b62492539891.png
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 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();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы