call()与apply()用法

Posted 鲁小肃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了call()与apply()用法相关的知识,希望对你有一定的参考价值。

call()和apply()的作用都是一样的——通过改变函数体内部 this 的指向,借用对象的方法的目的

还是举个栗子吧:

function Cat(){
    this.food = ‘fish‘;
    this.say= function(){
         console.log(‘I love ‘ + this.food)
   }
}       //小猫构造函数
var keke = new Cat();   //一只小猫,由小猫构造函数创建

var diandian = {food:‘bone‘};   //又来一只小狗
//小猫和小狗一起去餐厅吃饭
keke.say();    //I love fish
//小狗没有say 方法,但是他也想说自己喜欢的食物,于是

keke.say.call(diandian);  //I love bone借用小猫的方法。两人一起愉快地吃自己喜欢的食物了。

 这两个方法的区别在于参数,call()传递给函数的参数必须列举出来,apply()传递的是参数数组.

以上是关于call()与apply()用法的主要内容,如果未能解决你的问题,请参考以下文章

call()与apply()用法

详解js中的apply与call的用法

apply和call的用法

js中的call()和apply()方法

apply与call简单用法以及判断数组的坑

在JS中,call()方法和apply()方法到底该怎么应用?