[英]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.