this作为方法参数时指向的值

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对象,参数的值还是由这个执行上下文传给匿名方法的

猜你喜欢

转载自xiaoxiaoher.iteye.com/blog/2384444