我试图使用构造函数来帮助创建DOM元素,但我想知道是否有一种首选方法。我知道我可以使用框架来处理这个问题,但我想使用vanilla JavaScript来实现它。
下面显示的两种方式似乎都有效,但我还没有使用new
运算符。这两种方式有什么区别吗?在这种情况下,我会更好地使用普通旧函数而不使用new
吗?
// First way
function Title(text){
this.element = document.createElement('h2');
this.element.innerText = text;
return this.element;
}
// Second way
function Title(text){
var element = document.createElement('h2');
element.innerText = text;
return element;
}
var title = new Title("Hello");
document.body.appendChild(title);
答案 0 :(得分:2)
你的第一种方式似乎不正确。虽然它有效,但您似乎还不了解new
在JavaScript中的工作原理。将new
与函数一起使用时,将执行以下步骤:
{}
。this
引用都引用该空对象。this
用于根据需要填充该空对象。this
被返回。 (如果明确返回,this
将被忽略。)请注意,在构造函数中,如果显式返回this
以外的其他内容,则返回的值不是构造函数的instanceof
。只有this
是instanceof
构造函数。
因此,第一种方式与new
的逻辑无关。它在逻辑上与第二个相同。