function smallest(array){
return Math.min.apply(Math, array);
}
它将上下文指定为Math对象。这不是必需的(无论作为上下文传入什么,min() 和 max() 方法都将继续工作。
为什么即使通过了它也能工作undefined?
为什么不需要通过Math?
function smallest(array){
return Math.min.apply(Math, array);
}
它将上下文指定为Math对象。这不是必需的(无论作为上下文传入什么,min() 和 max() 方法都将继续工作。
为什么即使通过了它也能工作undefined?
为什么不需要通过Math?
函数执行时apply将绑定到的第一个参数。1如果函数没有引用(包括间接地,通过它可能调用的函数),那么它是什么并不重要。它发生在它执行时没有使用。thisthisthisMath.minthis
1这几乎是准确的。从docs,关于第一个论点:
请注意,这可能不是方法看到的实际值:如果方法是非严格模式代码中的函数,null 和 undefined 将被替换为全局对象,原始值将被装箱。