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

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

本文关键字:参数 函数 结束 Javascript 输入 为什么      更新时间:2024-01-27

我来自"老派"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);
    
  1. 这种风格的优点是,所有的逻辑都由这个自调用函数封装。因此,所使用的变量不在全局范围内。有利于垃圾收集。由于所有变量都是作用域的本地变量,因此您的代码是安全的
  2. 是的,它是自动执行的
  3. 它被调用是因为末尾有括号。()
  4. 您还可以使用($,reportGroupDataManager,data)传递值,这些值可以在函数中使用
  5. 这称为自调用函数。内部函数称为匿名函数。当你像这样包装函数时(函数位于此处…)();因此,它是自我调用的,因为它通过这样做而被调用
  6. 您可以在javascript中搜索自调用函数,并获得大量资源

希望能有所帮助。

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

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

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中有global。

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