1.函数调用模式:fn() 这里的this指向window
2.方法调用模式:obj.fn( ) this指向调用者,谁调用,就指向谁
3.构造函数调用模式:new Person()this指向新创建的实例
4.上下文调用模式:call()-----任何函数都可以看成一个特殊的对象,也可以设置属性和方法,都有一个call方法
call方法也可以用于调用函数,还可以指定函数执行的this指向
语法:fn.call(this指向,x,y,z)
apply()---每个函数都有一个apply方法,apply也可以用于调用函数,还可以指定函数执行的this指向
语法:fn.apply(this指向,[ x, y, z ] )
bind()----任何函数都有一个bind方法,作用:复制一个新函数,并且将新函数的this固定死指向传入的this的值
语法:var newFn=fn.bind(this指向)==》只是改变了新函数newFn的指向,fn的并没有改变
5.定时器中的this指向window
6.事件处理函数中,浏览器让this指向了事件源