this对象在运行时基于函数的执行环境进行绑定。
全局函数中,this等于window
var name=‘san‘;
var obj = {
name:‘yu‘,
getName:function(){
return this.name
}
}
obj.getName();//普通调用 yu
(obj.getName)()//对obj.getName的引用,yu
(obj.getName=obj.getName)();//san 执行了一条赋值语句,只是把函数赋值过去,没有进行计算,当需要计算时,就是在window环境中执行该函数
var name=‘san‘;
var obj = {
name:‘yu‘,
getName:function(){
var self = this;
return self.name
}
}
obj.getName()();//函数返回之后始终引用着obj的值 yu
如果要访问作用域中的this和argument对象,必须将该对象的引用保存到另一个闭包能够访问到的变量中