DOM. Конструктор класса?

Добрый вечер.
Читаю learn.js и не пойму этот момент:
Для того, чтобы узнать имя класса DOM-узла, вспомним, что обычно у объекта есть свойство constructor. Оно ссылается на конструктор класса, и в свойстве constructor.name содержится его имя

Откуда у объекта свойство constructor?
Или имеется в виду в прототипе объекта созданного с помощью вызова класса через new?

Так ведь и тут не сходится: в прототипе конструктор ссылается на объект(не на конструктор класса).

Помогите, пожалуйста. С меня благодарность!
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Некий сумбур вопроса без примеров кода попробую разобрать, отталкиваясь от знаков вопроса.

У всех (ну, почти) объектов в JavaScript в корне цепочки наследования — глобальный Object. У прототипа которого есть свойство constructor. Это ссылка на функцию, создавшую сей инстанс.

У функций в JavaScript есть свойство name.

Не важно, как именно создан объект. Если он — объект, у него, скорее всего, есть конструктор:
const el = document.createElement('div');
el.constructor.name // "HTMLDivElement"


А вот с классом
class Habr {
  constructor(q) {
    this.q = q;
  }
}

const h = new Habr('есть конструктор?');
h.constructor.name  // "Habr"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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