JS中的call()和apply()的区别

2018-07-20  本文已影响0人  汶沐

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

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

call() 示例1 call() 示例2 apply() 示例1 apply() 示例2

相同点:这两个方法的作用是一样的,都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。

不同点:接收参数的方式不同

    ● apply()方法  接收两个参数,一个是函数运行的作用域(this),另一个是参数数组。

        语法:apply(thisObj,[数组])

     ● call()方法  第一个参数和apply()的方法一样,但是传递给函数的参数必须列举出来。

        语法:call(thisObj,arg1.arg2.arg3.....)

使用示例1:

使用示例2:

本文摘自https://blog.csdn.net/ganyingxie123456/article/details/70855586

上一篇 下一篇

猜你喜欢

热点阅读