0

我在 javascript 中有一个类,在其中我定义了一些属性和方法,并且我创建了一个数组并创建了该类的实例值并将其推入其中。之后我迭代了数组并检查了特定方法的属性,但在 IE 和 mozilla 中它显示为未定义。我在下面给出了您的详细信息的代码。

班级:

function DateDetail(date, isBefore, isAfter, isNow) {
this.Date = date;
this.MonthNo = this.Date.getMonth();
this.DayNo = this.Date.getDate();
this.Year = this.Date.getFullYear();
this.IsAfter = isAfter;
this.IsBefore = isBefore;
this.IsNow = isNow;
this.GetMonthValue = function () {
    return this.Date.toString("MMM-yyyy");
    };
}

方法

function GetTableDataClass(data) {
if (data.IsAfter)
    return "after";
else if (data.IsBefore)
    return "before";
else if (data.IsNow)
    return "now";
else
    return " ";
}

调用方法

GetTableDataClass(item)

我得到的数据在 Mozilla 和 IE 中是未定义的。请让我知道任何建议。

4

1 回答 1

0

如果您得到的data是未定义的,那么您的问题是item您传递给的值GetTableDataClass是未定义的。您必须注意,在 JavaScriptundefined中是变量可以具有的值(就像null在 C# 中一样)。

如果您item从数组中获取,请确保您获取的索引存在。如果索引不存在,它将返回undefined. (例如:var a = [1,2,3]; alert(a[3])这会提醒undefined)。

于 2012-06-17T21:28:57.930 回答