Почему этот конструктор с именем method возвращает объект? - PullRequest
0 голосов
/ 03 июля 2018

Я полагал, что помещение метода класса в конструктор вернет <h1>, но это не так. Вместо этого он возвращает объект / класс.

Почему он ведет себя так, а не возвращает элемент <h1>?

Кажется, только так будет работать: new Foo(data).createText();?

const data = "This is a title";


class Foo {
  constructor(data) {
    this._title = data;
    this.createText();
  }

  createText() {
    return `<h1> ${this._title} </h1>`;
  }
}

const targ = document.getElementById('targ');

//Why doesn't this work considering it's called in the constructor?
targ.innerHTML = new Foo(data);

targ.innerHTML += new Foo(data).createText();
<div id="targ"></div>

Ответы [ 2 ]

0 голосов
/ 18 июля 2018

Преобразованием по умолчанию из объекта в строку является [объект объекта]

0 голосов
/ 03 июля 2018

Если функция конструктора не возвращает ничего, null или любое атомарное / не-объектное значение, то указанное значение игнорируется, и вновь созданная ссылка на объект возвращается вызывающей стороне. Например, возвращаемое значение 0 (ноль) из функции конструктора будет игнорироваться.

Источник

Источник 2

...