为什么 Math.max.apply 不关心第一个参数

why Math.max.apply doesn't care the first parameter

本文关键字:第一个 参数 不关心 apply Math max 为什么      更新时间:2023-09-26
function smallest(array){
  return Math.min.apply(Math, array);
}

它将上下文指定为Math对象。这不是必需的(无论作为上下文传递的内容如何,min(( 和 max(( 方法都将继续工作。

为什么即使像undefined一样通过它也能工作?
为什么没有必要通过Math

函数执行时,要apply的第一个参数将绑定到 this1 如果函数不引用this(包括通过它可能调用的函数间接引用(,那么this是什么并不重要。碰巧Math.min在执行时不使用this

1 这几乎是准确的。从文档中,关于第一个参数:

请注意,这可能不是该方法看到的实际值:如果该方法是非严格模式代码中的函数,则 null 和 undefined 将替换为全局对象,并且基元值将被装箱。