我有一个叫人的对象。我想要做的是让生日方法使用外部变量返回生日的日期对象,见下文。我试过这几种方法让它起作用但没有运气。 我得到的最好的是 警报(person.birthday()); // NaN
var person = {
firstName: "John",
mi: "G",
lastName: "Davis",
birthday: function() {
var x = new Date(bYear, bMonth, bDay);
return x();
},
}
我很感激一些帮助,我是JavaScript的新手,这给了我一些问题 var bYear = 1976; var bMonth =" 2月&#34 ;; var bDay = 18;
答案 0 :(得分:0)
如果你想结识一个人的生日,我建议你这个简单的解决方案:
var person = {
firstName: "John",
bYear: 1976,
bMonth: 1, //February
bDay: 18,
mi: "G",
lastName: "Davis",
birthday: function() {
var x = new Date(this.bYear, this.bMonth, this.bDay);
return x;
}
}
bYear
,bMonth
和bDay
是附加的属性,因此,birthday
函数需要这三个参数返回日期对象。
您可以在此处获得有关日期对象的信息:http://www.w3schools.com/js/js_dates.asp
祝你好运!答案 1 :(得分:0)
新日期(年,月,日)函数需要数组格式的月份,即:'0'=> 1月,'1'=> 2月等... 同样如前所述,无需创建'var x'。
var person = {
firstName: "John",
mi: "G",
lastName: "Davis",
bYear: 1976,
bMonth: 1,
bDay: 18,
birthday: function() {
return new Date(bYear, bMonth, bDay);
},
}
person.birthday();
答案 2 :(得分:0)
您可以访问外部变量,但代码中有一些错误,例如return x()
和日期格式。请尝试以下方法。
var person = {
firstName: "John",
mi: "G",
lastName: "Davis",
birthday: function() {
var x = new Date(bYear+"/"+bMonth+"/"+bDay);
return x;
},
}
var bYear = "1976";
var bMonth = "February";
var bDay = "18";
console.log(person.birthday());

虽然我不得不说这不是一般的实施。个人信息应保存在该对象中。
答案 3 :(得分:0)
好的我感谢你的帮助。人员对象中不包括人员出生月,日和年。根据您的建议和答案,我设法获得下面的代码,这就是我得到的。
var person = {
firstName: "John",
mi: "G",
lastName: "Davis",
birthday: function() {
var x = new Date(bYear, bm, bDay);
return x;
}
}
var bYear = 1976;
var bMonth = "February";
var bDay = 18;
var month = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var bm = month.indexOf(bMonth);
这个让我拿一个月的字符串,并获得生日方法函数的数值。