有more than one关于如何在 javascript 中查找值数组的最小值或最大值的 stackoverflow 问题。这不是那个问题。
我想知道为什么路过.apply()
奇怪的事情this
论证仍然有效。尽管一篇好博文从 Aaron Crane 那里了解到 Math 对象的 API 是如何变成现在这个样子的,但仍有一些问题没有得到解答。
以下每个代码片段都有效。我的问题是,如何?分配到底发生了什么this
这使得每一个都起作用?
标准构造
var values = [45, 46, 47]
var min = Math.min.apply(Math, values);
alert(min); //45
一个奇怪的结构,但范围可能很棘手......
var values = [45, 46, 47]
var min = Math.min.apply(this, values);
alert(min); //45
有点奇怪
var values = [45, 46, 47]
var min = Math.min.apply(global, values);
alert(min); //45
仍然很奇怪,但也许还可以 b/c 浏览器
var values = [45, 46, 47]
var min = Math.min.apply(window, values);
alert(min); //45
很奇怪
var values = [45, 46, 47]
var min = Math.min.apply(null, values);
alert(min); //45
真的很奇怪
var values = [45, 46, 47]
var min = Math.min.apply(undefined, values);
alert(min); //45