js的Apply和call

调用方法,替换对象。

  1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法。

2.call()、apply()都是用来重定义 this 这个对象的

3.相同点:这两个方法的作用是一样的。

都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。

call的使用

这两个方法就是用来调用函数的。语法如下:

call(对象,[形参, 形参])

一般来说,this总是指向调用某个方法的对象,但是使用call()和apply()方法时,就会改变this的指向。

apply的使用

apply(对象,[array(形参数组)])

call和apply的区别

从定义中可以看出,call和apply都是调用一个对象的一个方法,用另一个对象替换当前对象。而不同之处在于传递的参数,apply最多只能有两个参数——新this对象和一个数组argArray,如果arg不是数组则会报错TypeError;

call则可以传递多个参数,第一个参数和apply一样,是用来替换的对象,后边是参数列表。

猜你喜欢

转载自blog.csdn.net/m0_51281306/article/details/121344415