关于apply和call

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_第1张图片

欢迎指错!

你可能感兴趣的