关于Javascript中的匿名函数

时间:2017-11-06 07:51:07

标签: javascript

我是Javascript的新手,但拥有深厚的背景真实OO语言,如C#,Java,C ++ ...... 在Javascript中有一个称为匿名函数的概念。以下是示例代码:

(   function() { 
      for(var x = 0;x<5;x++) {
         console.log(x); 
      } 
   })(); 

我已经理解了最后的parantheses使函数调用自己。 还有另一种语法也是如此:

var x =   function() { 
      for(var x = 0;x<5;x++) {
         console.log(x); 
      } 
   }(); 

但是现在如果我尝试使用x,它就不会再次执行该功能。那么在第二个版本中使用赋值的目标是什么?我可以再次通过x使用此功能吗?

3 个答案:

答案 0 :(得分:3)

自执行功能称为IIFE(立即调用函数表达式),它通常用于控制作用域,因此您不会得到很多全局变量。

例如,此功能充当moneybox,它封装了您的&#34; money&#34;的所有信息,因此您只能插入钱或获得总金额,但您无法直接调用add / get并访问变量。

它也可以用作OOP的一种形式,因为你已经非常熟悉它了

&#13;
&#13;
SELECT * 
FROM table_name 
WHERE id IN (SELECT id 
             FROM table_name 
             WHERE ...) 
      AND ...
&#13;
&#13;
&#13;

答案 1 :(得分:1)

x被赋予了您的函数的结果,就像在任何其他表达式x = f()中一样,您只需在表达式中定义f。它没有返回值,因此在这种情况下x的值为undefined

如果您想使用x 调用该函数,那么就不要将()添加到表达式的结尾...

答案 2 :(得分:0)

我认为这可以帮到你:

var x =   function() { 
      for(var x = 0;x<5;x++) {
         console.log(x); 
      } 
   }; 
x();