如何使用函数在JavaScript中计算对象的属性?

时间:2015-04-20 16:41:07

标签: javascript object

我有一个对象,其属性值指定军事时间内的小时和分钟。我正在尝试使用另一个使用对象外部函数的属性来计算到12小时时间的时间并将这些值保存为附加属性。

我有以下代码:

$(function () {
    console.log( startTime.twelveHourTime );
});

var startTime = {
    militaryTime: {
        hours: 23,
        minutes: 30
    },
    twelveHourTime: convertToTwelveHourTime (this.militaryTime)
    /* I would like this to result in
    twelveHourTime: {
        hours: 11,
        minutes: 30,
        amOrpm: 'PM'            
    }*/
};


function convertToTwelveHourTime (militaryTime) {

    var twelveHourTime = {
        hours: 0,
        minutes: 0,
        amOrpm: ''
    };

    if(militaryTime.hours > 12){
        twelveHourTime.hours = militaryTime.hours - 12;
    }else{
        twelveHourTime.hours = militaryTime.hours;
    }

    twelveHourTime.minutes = militaryTime.minutes;

    if(militaryTime.hours > 11){
        twelveHourTime.amOrpm = 'PM';
    }else{
        twelveHourTime.amOrpm = 'AM';
    }

    return twelveHourTime;
}

运行此代码会导致控制台出现以下错误:

Uncaught TypeError: Cannot read property 'hours' of undefined

指的是if(militaryTime.hours > 12)行。

Uncaught TypeError: Cannot read property 'twelveHourTime' of undefined

指的是最初的console.log

为什么会发生这种情况?如何修复此代码?

0 个答案:

没有答案