如何调用此匿名Javascript函数?

时间:2012-09-15 12:01:23

标签: javascript

 var avg = function() 
   {
     var sum = 0;
      for (var i = 0, j = arguments.length; i < j; i++) 
        {

           sum += arguments[i];
         }
      return sum / arguments.length;
   }

当我尝试这样称呼时:

var average = avg(2,3,5);
average; // It works fine;

但是如何在不分配变量的情况下调用它? 如果有人能给出任何建议,那将是令人愉快的。谢谢。

4 个答案:

答案 0 :(得分:2)

你只需要这样称呼:

avg(2, 3, 5);

如果您想查看结果,请将其置于提醒通话中:

alert( avg(2, 3, 5) );

答案 1 :(得分:0)

你不需要在变量中调用函数的结果,你可以用它做任何你想做的事。

例如,将其用作警报中的值:

alert(avg(2,3,5));

您可以在另一个表达式中使用它:

var message = "The average is " + avg(2,3,5);

您可以直接在另一个电话中使用它:

someFunction(avg(2,3,5));

你甚至可以通过不对它做任何事情来抛弃结果,即使这在这种特定情况下没用:

avg(2,3,5);

答案 2 :(得分:0)

如果未将结果放入变量或兼容的上下文中,则此函数无法输出任何内容,这使得除非您输出结果,否则很难使用。试试这个:

var avg = function() 
   {
     var sum = 0;
      for (var i = 0, j = arguments.length; i < j; i++) 
        {

           sum += arguments[i];
         }

      var retvalue = sum / arguments.length;
      consoloe.log("avg: "+retvalue);
      return retvalue ;
   }

然后它可以帮助您查看函数何时被调用。

答案 3 :(得分:0)

你需要理解表达的概念。

每个表达式作为一个整体代表一个值。表达式可以由多个子表达式组成,这些子表达式以某种方式组合(例如与运算符组合)以产生新值。

例如:

  • 3是一个表达式(文字,具体而言),表示数值为三。
  • 3 + 4是一个表达式,由两个文字表达式组成,整体上产生值7

分配给变量时 - 如var average = - =的右侧 - 运算符需要是一个表达式,即产生的东西价值。

如您所见,average将被赋值为五。因此,avg(2, 3, 5)本身必须是一个表达式,其值为5

average本身是一个表达式,表示所述变量的当前值。

最重要的是,avg()var average =无关。 avg()独立存在,您可以将其视为普通值,例如5(当然还有其他差异)。

如果你已经理解了表达式和值的概念,那么应该很清楚,如果你能做到

var average = avg(2,3,5);
average; // It works fine;

您也可以

avg(2,3,5);