-1

コード例を次に示します。

var testObject =
{
   val1:  1,

   testing:  function( )
   {
      val1 = 2;
      alert( val1 );
   }
};

alert が val1 を出力すると、なぜ undefined と表示されるのでしょうか?

4

1 に答える 1

5

いいえ、そうではありませんhttp://jsfiddle.net/qmLMV/

val1: 1はプロパティでありval1 = 2;、関数本体の内部は変数であることに注意してください。すべての変数と同様に、識別子の解決が行われます。この場合、避けるべき暗黙のグローバル変数を作成しています。事前に変数を宣言してください。

function() {
    var val1 = 2;
}

これにも注意してください:

var testObject = {
   val1:  1,
   testing: function() {
      var val1 = 2;

      alert(val1); // alerts 2
      alert(this.val1); // alerts 1
   }
};

thisオブジェクトのメソッド内からオブジェクトのプロパティにアクセスするために使用します。

于 2011-01-11T03:00:58.217 に答える