关于this

61 阅读1分钟

概念: 每一个函数内部都有一个关键字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修改完毕的新函数