Math.max.apply()如何工作?

Math.max.apply()工作如何?

<!DOCTYPE html>

<html>

<head>

<meta charset=utf-8 />

<title>JS Bin</title>

</head>

<body>

<script>

var list = ["12","23","100","34","56",

"9","233"];

console.log(Math.max.apply(Math,list));

</script>

</body>

</html>

上面的代码在列表中找到最大数。谁能告诉我下面的代码如何工作?如果我通过的话似乎可行null or Math.

console.log(Math.max.apply(Math,list));

是否所有user-defined/Native functions我们都可以使用的调用和应用方法?

回答:

apply接受一个数组,并将该数组作为参数应用于实际函数。所以,

Math.max.apply(Math, list);

可以理解为

Math.max("12", "23", "100", "34", "56", "9", "233");

因此,这apply是一种将数据数组作为参数传递给函数的便捷方法。记得

console.log(Math.max(list));   # NaN

将不起作用,因为max不接受数组作为输入。

使用的另一个好处是apply,您可以选择自己的上下文。您传递给apply任何函数的第一个参数将是该this函数的内部。但是,max不依赖于当前上下文。因此,任何事物都可以代替Math

console.log(Math.max.apply(undefined, list));   # 233

console.log(Math.max.apply(null, list)); # 233

console.log(Math.max.apply(Math, list)); # 233

由于apply实际上是在中定义的Function.prototype,因此apply默认情况下,任何有效的JavaScript函数对象都将具有函数。

以上是 Math.max.apply()如何工作? 的全部内容, 来源链接: utcz.com/qa/422097.html

回到顶部