在代码块的底部调用multiMax(),我们传入4个参数。我看到剩下的逻辑如何发挥我只是不明白为什么警报(多)等于'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
答案 0 :(得分:2)
alert(multi)
显示“3”,因为您将3作为第一个值传递到multiMax
函数。
替换此行。
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,注意两行之间的差异。
答案 1 :(得分:2)
alert(multi)
显示“3”,因为multi
是第一个参数,3是您传递给函数的第一个值。
答案 2 :(得分:0)
ASSERT
和ALERT
不是一回事。
我不认为alert
电话是真正的问题。 alert
仅打印/显示第一个值 - >在您的情况下,alert( multimax(3, 1,2,3) == 9, "Whatever")
的第一个参数为multimax(3,1,2,3)==9
,我们都可以看到true
。这就是为什么你得到true
而不是“3 * 3 == 9”。