为什么这个称为方法的构造函数返回一个对象?

时间:2018-07-03 16:55:00

标签: javascript ecmascript-6 es6-class

我认为将类方法放入构造函数中会返回<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 :(得分:1)

  

如果构造函数不返回任何值,null或任何原子/非对象值,则将忽略该值,并将新创建的对象引用返回给调用方。例如,构造函数的返回值0(零)将被忽略。

Source

Source 2

答案 1 :(得分:0)

从对象到字符串的默认转换为[对象对象]