这是一个代码示例:
var testObject =
{
val1: 1,
testing: function( )
{
val1 = 2;
alert( val1 );
}
};
当警报打印 val1 时怎么会显示未定义?
这是一个代码示例:
var testObject =
{
val1: 1,
testing: function( )
{
val1 = 2;
alert( val1 );
}
};
当警报打印 val1 时怎么会显示未定义?
不,它不是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
从对象的方法中访问对象的属性。