apply和call都是函数的方法, 两个方法都能改变函数里面 this 的指向,改变后的函数 this 指向方法内的第一个参数。 apply和call 的主要区别在于,apply 后面向函数传递参数是借用的数组的形式,而 call 则使用逗号将参数分隔开即可, 详情请看下方示例。
call: 可以直接调用函数:
function fun(){
console.log('hello world!')
}
fun.call() //会直接输出 hello world!
然后一个关于改变 this 指向的直观例子:
function say(){
console.log(this.name)//可以看到这里并没有name
}
//定义一个对象
const cat = { name: '小花' }
say.call(cat)//这里会直接输出 小花
示例:
Document - 锐客网
图示:
文章图片
【关于apply和call】欢迎指错!