簡體   English   中英

在這個 Javascript function 為什么 alert(multi) 警告值 '3'

[英]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 的第一個值。

ASSERTALERT不是一回事。

我不認為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM