call和apply的区别

时间:2024-01-05 23:02:44

call和apply都属于function prototype的一个方法。

定义:调用一个方法的对象,以另一个对象替换当前对象。

相同点:两个方法产生的作用是一样的。

不同点:方法传递的参数不同。

call(thisobj,a,b,c,d)

说明:call方法可以用来代替另一个对象调用一个方法,可以将一个函数的对象从初始的上下文改变为由thisobj指定的新对象。如果没有提供thisobj参数,那么global对象被用作thisobj。

apply(thisobj,[Array]/arguments)

说明:如果Array不是一个有效的数组或者不是arguments对象,那么将导致一个TypeError。如果没有提供Array和thisobj的任何一个参数,那么global对象将被用作thisobj,并且无法传递任何参数。

应用场景:当参数明确时用call,不明确时用apply结合arguments

相关文章