var test = { foo:function(){ (function(root){ console.log(root); }(this)) console.log(this); } } test.foo(); //结果是:Object {foo: function}
一开始有点蒙逼,想了一会其实一句话就能说清楚,这时候this就是调用这个方法的执行上下文中的this(注意不是这个方法的上下文),
例如上面调用匿名方法的是foo方法的执行上下文,由于我们是用test.foo()的方法调用它,它的上下文中this就是test对象,参数的值还是由这个执行上下文传给匿名方法的