闭包中的this

var name="pushline";//全局变量
var obj=new Object();
obj.name="jms";
obj.getName=function () {
	return this.name;
}
alert(obj.getName());//返回obj对象name
var name="pushline";//全局变量
var obj={
	name:"jms",
	getName:function () {
		return this.name;
	}
}
alert(obj.getName());//返回obj对象name
var name="pushline";
var obj={
	name:"jms",
	getName:function () {
		return function  () {
			return this.name;
		}
	}
}
alert(obj.getName()());//返回全局变量"pushline",因为闭包中的this指windos
alert(obj.getName().call(obj));//返回"jms",因为call()强制改变了this的指向
var name="pushline";
var obj={
	name:"korbe",
	getName:function  () {
		var self=this;//这里的this指obj对象
		return function  () {
			return self.name;//闭包中的this指windos,现在指向obj。对比上一个方法。
		}
	}
}
alert(obj.getName()());
posted @ 2017-09-07 17:13  hid3onbush  阅读(372)  评论(1编辑  收藏  举报