在javascript中,this的值主要可以去四个方面去进行判断:
1、函数调用级别:
function func(){
console.log(this);
}
func();
这里面输出的this就是Global对象了,如果在浏览器内,this就是window对象
2、方法调用级别:
var person = {
name:'xiaoming',
say:function(){
console.log(this.name);
}
}
person.say();
输出结果为xiaoming,这里的this指的就是person了。
3、对象调用级别:
function func(){
console.log(this);
}
var obj = new func();
如果是使用new来初始化一个变量,那此时的this指的就是你new所指向的那个对象,也就是obj了。
4、使用call方法或者applay方法。
func.call(thisObject)和func.apply(thisObject)的形式被称为Apply Pattern,在这种模式下,call和apply的第一个参数就是func函数体内的this,如果thisObject是null或undefined,那么会变成Global对象。
本文参考:http://otakustay.com/object-lookup-in-javascript/ (文章中除了说了this关键字的值判断,还讲了js中对象查找的规律,推荐查看)