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

时间:2016-04-06 04:49:24

标签: javascript jquery arrays javascript-events javascript-objects

我来自“老派”javascript函数,我甚至不需要演示。

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

        (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);
    

2 个答案:

答案 0 :(得分:0)

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

它的工作方式与以下代码相同:

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

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

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

说全局上下文,在网页中有窗口对象,在nodejs中有全局。

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

答案 1 :(得分:0)

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