-2

オブジェクトから値を返すことに問題があります。私のオブジェクトは次のようになります。

   function XYZ(date, startT)
     {
     var _date=date;
     var _startT=startT;
     this.get_date = function() {
       return _date;
       };
      this.set_date = function(value) {
        _date=value;
      };
       this.get_startT = function() {
       return _startT;
       };
       this.set_startT = function(value) {
       _startT=value;
      };
      this.toString()
      return (_date + " " _startT);
      }

次に、このような配列を作成します

   jsData[0] =new XYZ("2012-11-11","8:00");
   jsData[1] = new XYZ("2012-03-03","8:00");

get_dateメソッドを使用したい場合、値は返されませんでしたが、get_startTメソッドは正常に機能します。.toStringメソッドでオブジェクトを表示すると、完全なオブジェクトも表示されます

助けてください。

4

3 に答える 3

1

すべての構文エラーを修正すると機能します。

function XYZ(date, startT) {
  var _date=date;
  var _startT=startT;
  this.get_date = function() {
    return _date;
  };
  this.set_date = function(value) {
    _date=value;
  };
  this.get_startT = function() {
    return _startT;
  };
  this.set_startT = function(value) {
    _startT=value;
  };
}

var jsData = [];
jsData[0] = new XYZ("2012-11-11","8:00");
jsData[1] = new XYZ("2012-03-03","8:00");

display("jsData[0].get_date() = " + jsData[0].get_date());

出力:

jsData[0].get_date() = 2012-11-11

ライブコピー| ソース

明らかなタイプミス以外に、私がやったことは次のとおりです。

  • 関数本体を囲み{ます。}

  • 機能していない を削除しましthis.toString()た (結果をどこにも保存しなかったため、ノーオペレーション)。

  • コンストラクター関数から文字列プリミティブを返すことは別のノーオペレーションであるため、最後の return を削除しました。

  • 宣言しjsDataた。

  • 初期化しjsDataました。

于 2012-11-20T09:41:41.947 に答える
0

次のように、関数プロトタイプにメソッドを追加してみてください。

function XYZ(date, startT) {
  this._date = date;
  this._startT = startT;
}

XYZ.prototype.get_date = function() {
  return this._date;
}
XYZ.prototype.set_date = function(value) {
  this._date = value;
}
XYZ.prototype.get_startT = function() {
  return this._startT;
}
XYZ.prototype.set_startT = function(value) {
  this._startT = value;
}
XYZ.prototype.toString = function() {
  return this._date + " " + this._startT;
}

var myXYZ = new XYZ("2012-11-11","8:00");
myXYZ.toString(); // "2012-11-11 8:00"

コンソールでテストしたところ、最終的な文字列が正しく出力されました。

于 2012-11-20T09:45:58.393 に答える
0

{後に開き括弧がないように見えます

function XYZ(date, startT)

そして、コードの最後に 1 つ。( })

于 2012-11-20T09:37:42.297 に答える