在代码块底部调用multiMax()时,我们传入了4个参数。我明白了其余的逻辑是如何实现的,我只是不明白为什么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
发布于 2011-06-10 02:58:30
alert(multi)显示"3“,因为multi是第一个参数,3是传递给函数的第一个值。
发布于 2011-06-10 02:58:26
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,请注意两行之间的差异。
发布于 2011-06-10 02:58:14
ASSERT和ALERT不是一回事。
我不认为alert调用是真正的问题所在。alert只打印/显示第一个值->在本例中,alert( multimax(3, 1,2,3) == 9, "Whatever")的第一个参数是multimax(3,1,2,3)==9,正如我们所看到的,它是true。这就是为什么你得到的是true,而不是"3*3 == 9“。
https://stackoverflow.com/questions/6297770
复制相似问题