call和apply的小结

时间:2023-01-11 01:11:14

call和apply的区别:

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

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

call的语法:call(thisObj,arg1,arg2……)

apply的语法:apply(thisObj,[argArray])

3、说明:对于apply和call两者在作用上是相同的,但两者

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

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

4、call和apply的作用

①调用函数

call和apply的小结

②传参数

call和apply的小结

③借用其他函数的方法:

call和apply的小结

④改变函数内部的this指向

Call的简单用法:

call和apply的小结

Apply的简单用法:

call和apply的小结

实现继承:

call和apply的小结

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

实现多重继承:

call和apply的小结