评论应该是自我解释的。我只想在构造函数中创建一个元素,并在使用它创建对象时将其附加到DOM。
<div id="app">
</div>
的Javascript
function DomItem(name,buttonName,button){
if(typeof(this.button)==='undefined') {
this.button = document.createElement('div');
};
this.buttonName = buttonName;
this.button.className = buttonName;
this.button.id = name +"_ " +buttonName;
var app = document.getElementById("app"); //Works!
console.log(app); // Works!
app.appendChild(button); // Problem ~~~~~~~~~~~~~~~
};
osc = new DomItem('osc','button');
答案 0 :(得分:2)
button
构造函数中的 DomItem
为undefined
,因为您没有传递第三个button
参数。任何未传递的命名参数都将赋值undefined
。
osc = new DomItem('osc','button'/*, button parameter missing*/);
使用this.button
来引用构造函数中创建的按钮。
app.appendChild(this.button);
请注意,以下代码中的this.button
并未引用第三个button
参数,而是引用button
的属性this
,这在调用时始终未定义构造函数。
if(typeof this.button ==='undefined') {
this.button = document.createElement('div');
}