Javascript 对象,即使在给定值之后也提供空值

Javascript 对象,即使在给定值之后也提供空值,javascript,Javascript,window.onload=function(){ var Employee=函数(名称,bd){ this.name=名称; this.bd=bd; this.age=函数(){ 2017年-this.bd; } } var empName=document.getElementById(“名称”).value; var empBday=document.getElementById(“bday”).value; var empList=新员工(empName,empBday); var Bt

window.onload=function(){
var Employee=函数(名称,bd){
this.name=名称;
this.bd=bd;
this.age=函数(){
2017年-this.bd;
}
}
var empName=document.getElementById(“名称”).value;
var empBday=document.getElementById(“bday”).value;
var empList=新员工(empName,empBday);
var Btn=document.getElementById('add')。addEventListener('click',function(){
控制台日志(empList);
});
}


添加
在window onload中为对象赋值。所以会指定空值,因为您的输入元素默认为空值

换成

window.onload=函数(){
var Btn=document.getElementById('add')。addEventListener('click',function(){
var Employee=函数(名称,bd){
this.name=名称;
this.bd=bd;
this.age=函数(){
2017年-this.bd;
}
}
var empName=document.getElementById(“名称”).value;
var empBday=document.getElementById(“bday”).value;
var empList=新员工(empName,empBday);
控制台日志(empList);
});
}

员工详细信息
添加

仅在单击按钮后创建对象:

var Employee = function(name, bd) {
    this.name = name;
    this.bd = bd;
    this.age = function() {
        2017 - this.bd;
    }
}

window.onload = function () {
    document.getElementById('add').addEventListener('click', function(){
        var empName = document.getElementById("name").value;
        var empBday = document.getElementById("bday").value;

        var empList = new Employee(empName, empBday);
        console.log(empList);
    });
}

您需要添加如下处理程序更改事件:

window.onchange=函数(){
var Employee=函数(名称,bd){
this.name=name.value;
this.bd=bd.value;
this.age=函数(){
2017年-this.bd;
}
}
var empName=document.getElementById(“名称”)
var empBday=document.getElementById(“bday”)
var empList=新员工(empName,empBday);
var Btn=document.getElementById('add')。addEventListener('click',function(){
控制台日志(empList);
});
}

员工详细信息
添加

当窗口加载时,输入值只是空字符串,因此这就是您得到的结果。您还期待其他东西吗?您在window.onload上设置了值。您必须在输入发生更改时更新它们。加载页面时,它们是空的。this.age需要返回一些内容,对吗?
windows。onchange
太过全局化,会在浏览器上出错,因为它是由多种原因触发的。最糟糕的是,它会使示例中的单击绑定成倍增加,从而“更改”越多,就会复制所有输出。如果您所需要的只是单击元素时的值,然后将其定位到该元素。始终尝试使用最具体而不是最全局的选择器。