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

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

为什么即使通过了它也能工作undefined
为什么不需要通过Math

4

1 回答 1

0

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

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

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

于 2013-08-22T07:18:05.900 回答