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

时间:2013-08-22 07:15:04

标签: javascript math

function smallest(array){
  return Math.min.apply(Math, array);
}

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

为什么即使像undefined那样传递呢? 为什么没有必要通过Math

1 个答案:

答案 0 :(得分:0)

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

1 这几乎是准确的。从the docs开始,关于第一个论点:

  

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