【问题标题】:What is diffence between two closures? [duplicate]两个闭包有什么区别? [复制]
【发布时间】:2015-04-25 06:22:19
【问题描述】:

我正在使用我的 js 文件,例如:

(function() {
    'use strict';
    angular
    .module('app.someModule')
    .config(config);
    function config(someDependency){
    //some configuration
    }
    config.$inject=['someDependency'];
})();

但是我看到当我使用闭包时,有些人将角度对象本身注入闭包。比如:

(function(angular){/*whatever logic*/})(angular);

哪个更好用或者两种用法有什么区别?

所以我不会像往常一样添加不会造成任何麻烦的全局角度变量?

【问题讨论】:

    标签: javascript angularjs closures


    【解决方案1】:

    两个立即执行的函数 (IIFE) 之间的区别在于,在第二种情况下,您使用一个参数 angular 调用函数。它可以带来的好处是稍微提高了性能,因为 Javascript 引擎不需要在全局范围内查找变量,因为 angular 对象在本地闭包范围内可用作为函数调用传递的引用(但当然它仍然指向同一个 Angular 对象,在全局范围内定义)。

    【讨论】:

      猜你喜欢
      • 2012-12-07
      • 1970-01-01
      • 2016-05-08
      • 2019-11-15
      • 2012-03-21
      • 2011-01-14
      • 2013-12-17
      • 2013-02-19
      • 2020-07-22
      相关资源
      最近更新 更多