Почему выдает false?

Вот код:
function Func() {
    this.name = 'Eva',
        this.surname = 'Li'
};

console.log(Func.prototype == constructor.Func); //false


60e2d24054d79220396398.png
Как может выдавать false, если функция-конструктор Func действительно содержит св-во prototype, которое содержит св-во constructor, которое в свою очередь содержит ссылку на эту же функцию-конструктор Func?

Как так может быть?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Kerrik Солнце, ну нельзя же настолько не знать (не понимать) язык…

Вы обращаетесь к переменной constructor. Подозреваю что вы делаете это в консоли браузера и переменную эту никогда не объявляли, поэтому JS выдаст вам свойство constructor глобального объекта. В данном случае это будет window.constructor который конечно же никакого отношения к вашей функции Func не имеет.

И в любом случае constructor имеет смысл смотреть у экземпляра объекта, а не у класса.

let f = new Func();
console.log(f.constructor === Func) // true

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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