Javascript,即<;p>;元素显示[object HTMLInputElement]它为什么显示这个?

Javascript,即<;p>;元素显示[object HTMLInputElement]它为什么显示这个?,javascript,html,Javascript,Html,我试图用javascript来理解面向对象编程,而不是在表单上显示输入[Object HTMLInputElement] document.getElementById('submit').addEventListener('click',function(){ 让uName=document.getElementById('uName').value; info.showInfo(); }); 班级信息{ 建造师(姓名){ this.name=名称; } showInfo(){ var z=

我试图用javascript来理解面向对象编程,而不是在表单上显示输入[Object HTMLInputElement]

document.getElementById('submit').addEventListener('click',function(){
让uName=document.getElementById('uName').value;
info.showInfo();
});
班级信息{
建造师(姓名){
this.name=名称;
}
showInfo(){
var z=document.createElement('p');
z、 innerHTML=this.name;
文件.正文.附件(z);
}
}
const info=新信息(uName)

名字:

提交
正如@Teemu在评论
中所说,让uName
对于
const info=新信息(uName)不可见

试试下面的代码

uName=document.getElementById('uName');
document.getElementById('submit')。addEventListener('click',function(){
const info=新信息(unmeelement.value);
info.showInfo();
});
班级信息{
建造师(姓名){
this.name=名称;
}
showInfo(){
var z=document.createElement('p');
z、 textContent=this.name;
文件.正文.附件(z);
}
}

名字:

提交
这是否回答了您的问题@padaleiana我试过了,但没有成功。HTML元素的
id
创建了一个全局变量,引用id的所有者元素。您已经在事件处理程序函数中声明了
uName
,因此在创建
info
对象时无法访问它,并且
uName
引用的是输入元素而不是其值。如果是,我如何访问它?我不知道@TeemuYou应该设置
textContent
属性,而不是
innerHTML
属性!否则,如果在
name
中使用保留字符,您将面临注入和无效JavaScript。