为什么使用具有与输入参数相同的结束参数的函数编写 Javascript 代码?

Why code Javascript with functions having same ending parameters as input parameters?

我来自 "old school" Javascript 我什至不需要演示的函数。

  1. 以下样式有什么优点?
  2. 这是自执行的吗?
  3. 这个怎么称呼?
  4. ($, reportGroupDataManager, data) 有什么意义?
  5. 这种编码风格叫什么?
  6. 我在哪里可以学习如何编写这种风格的代码,在哪里以及如何学习?

    (function(jQ, dM, data) {
       var self = this;
       //var $container = jQ('#menu-tree'),
       //    initializePage = function(resources) {
       //    console.log('in init');
    
       //        //var resources = "blah";
       //    };
    
    
    
       var initializePage = function () {
           console.log('in init');
    
    
       };
    
    
    
       dM.getResources()
          .done(initializePage);
    
    
    })($, reportGroupDataManager, data);
    

这段代码定义了一个匿名函数,然后用给定的参数调用它。

它的工作原理与以下代码相同:

function funt(a, b) {return a + b}
funt(1, 2); // or window.funt(1, 2);

简单代码风格的优点是您不会在全局上下文中创建变量:

(function(a, b){return a + b;})(1, 2);

说全局上下文,网页有window对象,nodejs有全局

另一个优点是你可以在函数内做任何你想做的事情,比如定义事件处理程序,局部变量被这个函数隐藏。

  1. 这种风格的优点是你的所有逻辑都被这个自调用函数包装了。所以使用的变量不在全局范围内。有利于垃圾收集。由于所有变量都在范围内,因此您的代码是安全的。
  2. 是的,它是自动执行的。
  3. 因为最后的括号被调用了。 ().
  4. 您还使用可在函数内部使用的 ($, reportGroupDataManager, data) 传递值。
  5. 这叫做自调用函数。内部函数称为匿名函数。因为你正在像这样包装函数 (函数在这里......)(); 所以它是自我调用的,因为它是通过这样做被调用的。
  6. 您可以在javascript中搜索自调用函数,获取大量资源。

希望对您有所帮助。