[英]In this Javascript function why does alert(multi) alert the value '3'
在代码块底部调用 multiMax() 我们传入 4 arguments。 我看到逻辑的 rest 是如何发挥作用的,我只是不明白为什么 alert(multi) 等于'3';
http://jsfiddle.net/captainill/AjEPV/
function multiMax(multi){
alert(multi);
// Make an array of all but the first argument
var allButFirst = Array().slice.call( arguments, 1 );
// Find the largest number in that array of arguments
var largestAllButFirst = Math.max.apply( Math, allButFirst );
// Return the multiplied result
return multi * largestAllButFirst;
}
alert( multiMax(3, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );
我一直在阅读这些优秀的小教程: http://ejohn.org/apps/learn/#47
alert(multi)
显示“3”,因为您将 3 作为第一个值传递给multiMax
Function。
替换此行。
alert( multiMax(3, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );
和
alert( multiMax(4, 1, 2, 3) == 9, "3*3=9 (First arg, by largest.)" );
结果将是 4,请注意这两行之间的差异。
alert(multi)
显示“3”,因为multi
是第一个参数,3 是您传递给 function 的第一个值。
ASSERT
和ALERT
不是一回事。
我不认为alert
呼叫是这里的真正问题。 alert
仅打印/显示第一个值-> 在您的情况下alert( multimax(3, 1,2,3) == 9, "Whatever")
的第一个参数为multimax(3,1,2,3)==9
,我们都知道这是true
。 所以这就是为什么你得到true
而不是“3 * 3 == 9”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.