概念: 每一个函数内部都有一个关键字this,this的值与函数的调用有关,和函数的书写无关。
this是什么?
1.在方法中,this指的是所有者对象。
2.单独的情况下,this指的是全局对象。
3.在函数中,this指的是全局对象。
4.在事件中,this指的是接收事件的元素。
5.如果将函数作为定时器执行时的函数,那么触发的时候,内部的this指向了全局对象window。
改变this指向
方法1:call() 语法:函数.call(this指向目标,参数1,参数2...)
fn.call(obj, 300, 400)
方法2:apply()
语法:函数.apply(this指向目标,[参数1,参数2...])
fn.apply(obj, [500, 600])
方法3:bind() 语法:函数.bind(this指向目标,参数1,参数2...)
注意:bind方法不会立即执行函数,会返回一个内部this修改完毕的新函数