【问题标题】:AngularJS - the best way to write 'angular.module'?AngularJS - 编写“angular.module”的最佳方式?
【发布时间】:2016-07-17 03:35:37
【问题描述】:

我用过

  1. var app = angular.module('', []); app.controller...

  2. angular.module('', []).controller()

  3. (函数() { var app = angular.module('', []); })();

所有这些都有效。但我不明白第三个。这是什么(function() {})();

以及 3 个中最好的是什么。谢谢。

【问题讨论】:

标签: angularjs


【解决方案1】:

它被称为自执行函数,你可以从这里看到它;

What is the purpose of a self executing function in javascript?

【讨论】:

    【解决方案2】:

    John Papa 的 Angular 风格指南解释了为什么应该使用 #3 - Immediately Invoked Function Expressions

    为什么?:IIFE 从全局范围中删除变量。这有助于 防止变量和函数声明的寿命超过 在全局范围内预期,这也有助于避免变量 碰撞。

    为什么?:当您的代码被压缩并捆绑到一个文件中时 部署到生产服务器,你可能会有冲突 变量和许多全局变量。 IIFE 可以保护您免受两者的侵害 通过为每个文件提供变量范围来实现这些。

    【讨论】:

      【解决方案3】:

      2 正确

      angular.module('', []). controller() //<- correct

      不推荐使用var app = angular.module('', []); app.controller,因为它会创建一个全局变量“app”,这可能会混淆其他脚本并且在任何情况下都是不必要的。

      (function() { var app = angular.module('', []); })(); 比 #1 好,但它是不必要的,因为闭包可以防止 var app 泄露,但它甚至没有在闭包中使用。

      基本上,如果您要实例化(并使用!)变量,则只需要function 闭包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-19
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多