为什么 Math.max.apply 不关心第一个参数
why Math.max.apply doesn't care the first parameter
function smallest(array){
return Math.min.apply(Math, array);
}
它将上下文指定为Math
对象。这不是必需的(无论作为上下文传递的内容如何,min(( 和 max(( 方法都将继续工作。
为什么即使像undefined
一样通过它也能工作?
为什么没有必要通过Math
?
函数执行时,要apply
的第一个参数将绑定到 this
。1 如果函数不引用this
(包括通过它可能调用的函数间接引用(,那么this
是什么并不重要。碰巧Math.min
在执行时不使用this
。
1 这几乎是准确的。从文档中,关于第一个参数:
请注意,这可能不是该方法看到的实际值:如果该方法是非严格模式代码中的函数,则 null 和 undefined 将替换为全局对象,并且基元值将被装箱。
相关文章:
- 抛出消息;TypeError:第一个参数必须是字符串或Buffer
- AngularFire 0.5美元移除.错误:Firebase.child失败:第一个参数是无效路径
- Node.js如何知道回调的第一个参数是否是错误处理程序
- 未能构造'Blob':提供的第一个参数为null,或者是无效的Array对象
- 什么's将数组传递给app.get()的第一个参数的替换项
- node.js请求POST数组“;第一个参数必须是字符串或缓冲区;
- fn.apply 与第一个参数 null 或未定义
- JS中的文本函数第一个参数(_)
- 为什么.replace 方法使用正斜杠字符将第一个参数括起来
- 要传递给 fn.apply 的标准默认第一个参数
- 为什么node.js在回调中寻找错误作为第一个参数
- 下划线.js : _.where() 使用第一个参数,但不适用于第二个参数
- 添加新的第一个参数,然后应用原始参数
- 对 $scope.$watch 的第一个参数的混淆
- Firebase.update失败:第一个参数在属性中包含未定义的参数
- 为什么setTimeout和setInterval's回调第一个参数
- 为什么 Math.max.apply 不关心第一个参数
- 如何在javascript中从url获取第一个参数
- 函数.调用类似数组的对象,不需要第一个参数
- 对setTimeout中的第一个参数感到困惑