第一、如果一个函数中有this,但是它没有以对象方法的形式调用,而是以函数名的形式执行,那么this指向的就是全局对象;
第二、如果一个函数中有this,并且这个函数是以对象方法的形式调用,那么this指向的就是调用该方法的对象;
第三、如果一个函数中有this,并且包含该函数的对象也同时被另一个对象所包含,尽管这个函数是被最外层的对象所调用,this指向的也只是它上一级的对象,
如:
var obj = {
test;{
fun:function(){
console.log(this);
}
}
}
obj.test.fun();
第四、如果一个构造函数或以类方法中有this,那么它指向该构造函数或类创建出来的实例对象。