apply() 与 call() 用法浅析

apply()call() 作为所有函数的方法,定义为:在指定this值与参数的情况下调用某个函数或方法。两者的区别是:call()方法接受的是若干个参数的列表,而apply()方法接受的是一个包含多个参数的数组

这两个方法的关键点在于指定this与参数,所以我们以此为切入点,看看在实际的工作中有哪些用法。

使用apply()支持可变参数

所有的语言,有一些我们经常要做的事情,似乎都被语言的开发人员莫名其妙的忽略了,JavaScript 也不例外。比如查找数组中的最小值与最大值。在 JavaScript 中似乎没有这两种功能,但如果随意探索的话,可能会发现Math对象有两个名为min()max()的方法。

一开始我们认为,这些方法可能就是我们想要的答案,但测试以后,我们发现第个方法都需要可变长度的参数列表,而不是数组。这根本不能满足我们的需求,也就是说,Math.max()的调用,需要像下面这样:

查看全文