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)); # 233console.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