一、call和apply
函数中的this在定义的时候,无法确定,只有当函数执行的瞬间,this才能确定下来。
简单来说,就是:
谁调用,指向谁
举例:
1 | <body style="height:500px"> |
当我们需要改变函数中的this指向固定元素的时候,我们就要用到call或者apply
1.1 call
call方法是每一个函数天生可以调用的。
作用:
执行函数,并改变函数的this指向
使用方式:
fun.call()
可以接受多个参数:
第一个参数就是要改变的this指向
从第二个参数开始都是原函数所需要的参数
1 | // 使用call改变函数的this指向 |
如果fun函数中需要传递参数,就可以往call第二个参数开始传递。
1.2 apply
和call方法作用一致,都是执行函数,并改变函数中的this指向
使用方式:
fun.apply()
与call方法不同的是参数:
可以接受2个参数:
第一个参数是改变函数的this指向
第二个参数是一个数组,数组中每一项就是函数所需要的参数
1 | // 使用apply改变函数中this指向 |