call和apply的区别

callapply的区别:

1call函数和apply方法的第一个参数都是要传入给当前对象的对象,函数内部的this。后面的参数都是传递给当前对象的参数。

2俩者的格式和参数定义:

call的语法:callthisObjarg1arg2……)

apply的语法:applythisObj[argArray]

3说明:对于applycall两者在作用上是相同的,但两者

在参数上有区别的。对于第一个参数意义都一样,但对第二个参数:apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,而call则作为call的参数传入(从第二个参数开始)。

eg: fun.call(thisObj,arg1,arg2,arg3)对应的apply写法为:fun.apply(thisObj,[arg1,arg2,arg3])

4、callapply的作用

①调用函数

 

②传参数

 

③借用其他函数的方法:

 

④改变函数内部的this指向

Call的简单用法:

 

Apply的简单用法:

 

实现继承:

 

说明:谁调用this就指向谁,Animal.call(this,name)将指向变成了Animall。原本指向的是Cat,这样一来Cat就继承了Animal的属性和方法。

实现多重继承:

原文地址:https://www.cnblogs.com/lml-lml/p/6875343.html