0

オブジェクトリテラル表記を使用して変数を設定し、後でアクセスしようとしています。この変数は後続のコードで使用する必要があるため、ここで 1 回だけ設定します。

このコードを jsFiddle で実行すると、HalfWidth が NaN であるというエラーが表示されます。ここからこの変数を設定してアクセスするにはどうすればよいですか?

var $LIST = {
  FullWidth: 120,
  HalfWidth: this.FullWidth / 2,
  exit: function () {}
};

alert($LIST.FullWidth);
alert($LIST.HalfWidth);

http://jsfiddle.net/7JcaQ/

4

1 に答える 1

3

this状況との関連性はありません-メソッド呼び出しのコンテキストオブジェクトを定義するだけです。さらに、$LIST定義が終了するまで終了しないため、独自の定義で参照することはできません。

書く:

var $LIST = {
  FullWidth: 120,
  exit: function () {}
};
$LIST.HalfWidth = $LIST.FullWidth / 2

(注意してください。NaNメソッド呼び出しの外側はthis、ほとんどの場合、グローバル オブジェクトを参照するためです。当然のことながら、ほとんどの場合、そのプロパティには数値がありません.FullWidth。これを 2 で割ると、 が生成されますNaN。)

于 2013-03-26T15:52:47.503 に答える