这是一个代码示例:
var testObject =
{
val1: 1,
testing: function( )
{
val1 = 2;
alert( val1 );
}
};
警报打印val1时怎么样,是不确定的?
答案 0 :(得分: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
从该对象的方法中访问对象的属性。