Function.apply()是JS的一个OOP特性,一般用来模拟继承和扩展this的用途,对于上面这段代码,可以这样去理解: XXX.apply是一个调用函数的方法,其参数为:apply(Function, Args), Function为要调用的方法,Args是参数列表,当Function为null时,默认为上文, 即 Math.max.apply(null, arr) 可认为是 apply(Math.max, arr) 然后,arr是一个参数列表,对于max方法,其参数是若干个数,即 Math.max(a, b, c, d, ...) 当使用apply时,把所有参数加入到一个数组中,即 arr = [a, b, c, d, ...] 代入到原式, Math.max.apply(null, [a, b, c, d, ...]) 实际上等同于 Math.max(a, b, c, d, ...) 在此处,使用apply的优点是在部分JS引擎中提升性能。