如何
Math.max.apply(null, arr);
完全正常工作?
假设
var arr = [45,25,4,65] ;
它会比较'null'和'45'并返回两个相邻的最大数字。 45?
比较后,它会再次比较返回的数字和下一个数组编号,例如25并返回最大数量?
如何在内部完成计算?我想,这是一样的。
答案 0 :(得分:2)
apply的第一个参数是函数的this
。
这并不重要,因为此函数不需要特定的this
值。例如,在其他一些情况下可能很重要:
var foo = {
b: true,
func: function() {
return this.b;
}
};
var bar = { b : false };
foo.func(); // true
foo.func.apply(bar); // false
答案 1 :(得分:0)
它等于
Math.max(...arr);
那等于:
Math.max(45, 25, 4, 65);
它在内部的工作方式取决于浏览器/解析器的本机实现。在js中可能是:
Math.max = (...args) => {
let max = - Infinity;
for(const number of args)
if(number > max) max = number;
return max;
};