返回问题将对象的属性作为日期对象

时间:2016-05-29 20:39:08

标签: javascript function date object methods

我有一个叫人的对象。我想要做的是让生日方法使用外部变量返回生日的日期对象,见下文。我试过这几种方法让它起作用但没有运气。 我得到的最好的是     警报(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;

4 个答案:

答案 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;
    }
}  

bYearbMonthbDay附加的属性,因此,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);

这个让我拿一个月的字符串,并获得生日方法函数的数值。