call、apply与 bind
提示:以下是本篇文章正文内容,下面案例可供参考
一、call
通过.call(),可以调用某个函数,并修改函数的this指向
fun.call(this要指向的对象, params1, params2...)
function test(params1, params2) {
console.log('我是test函数')
console.log(this)
console.log(params1)
console.log(params2)
}
const obj = {
data: '我是data数据'
}
test.call(obj, '数据1', {num: '1'})
// 输出的结果分别为
// 我是test函数
// { data: '我是data数据' }
// 数据1
// { num: '1' }
二、apply
通过.apply()
,可以调用某个函数,并修改函数的this指向。与call
不同的是,通过apply
传递的参数必须是数组
三、bind
通过.bind()
,不会调用函数,但是可以修改函数的this指向。
fun.bind(this要指向的对象, params1, params2...)