function smallest(array){
return Math.min.apply(Math, array);
}
它将上下文指定为Math
对象。这不是必需的(min()和max()方法将继续工作,无论传入的内容是什么。
为什么即使像undefined
那样传递呢?
为什么没有必要通过Math
?
答案 0 :(得分:0)
当函数执行时,apply
的第一个参数将绑定到this
。 1 如果函数没有引用this
(包括间接,通过它可能调用的函数),那么this
是什么并不重要。 Math.min
在执行时不会使用this
。
1 这几乎是准确的。从the docs开始,关于第一个论点:
请注意,这可能不是方法看到的实际值:如果方法是非严格模式代码中的函数,则null和undefined将替换为全局对象,并且原始值将被加框。