繁体   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