先看一个例子程序:
var temp = "I am Window!";
var object = {
name:"I am Object!";
getName:function(){
return function(){
return this.name;
}
}
}
alert(object.getName()());//猜猜这里返回什么("I am Window!")
为什么不是“I am Object!”,这是因为每个函数在被调用时,其活动对象都会自动取得两个特殊变量:this和arguments。
内部函数在搜索这两个变量时,只会搜索到其活动对象为止,因此不会访问外部函数的这两个变量。