コード例を次に示します。
var testObject =
{
val1: 1,
testing: function( )
{
val1 = 2;
alert( val1 );
}
};
alert が val1 を出力すると、なぜ undefined と表示されるのでしょうか?
コード例を次に示します。
var testObject =
{
val1: 1,
testing: function( )
{
val1 = 2;
alert( val1 );
}
};
alert が val1 を出力すると、なぜ undefined と表示されるのでしょうか?
いいえ、そうではありません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
オブジェクトのメソッド内からオブジェクトのプロパティにアクセスするために使用します。