0

私はいくつかのプロパティとメソッドを定義し、配列を作成し、クラスのインスタンス値を作成してプッシュしました。その後、配列を反復し、特定のメソッドからプロパティをチェックしましたが、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が未定義であることです。undefinedJavaScriptでは、変数が持つことができる値であることに注意する必要があります ( nullC# と同様)。

配列から取得している場合は、取得itemしているインデックスが存在することを確認してください。インデックスが存在しない場合は、 が返されundefinedます。(例:var a = [1,2,3]; alert(a[3])これは警告しundefinedます)。

于 2012-06-17T21:28:57.930 に答える