Javascript 为什么有两种不同的角函数包装方法?哪种方法最好。?

Javascript 为什么有两种不同的角函数包装方法?哪种方法最好。?,javascript,angularjs,Javascript,Angularjs,所以我不熟悉javascript和angularjs。但让我困惑的是这一点 功能A (function (angular) { var AuthenticationService = function($http, $cookieStore, $rootScope, $timeout,UserService) { } AuthenticationService.$inject = ['$http', '$cookieStore', '$rootScope', '$t

所以我不熟悉javascript和angularjs。但让我困惑的是这一点

功能A

(function (angular) {

    var AuthenticationService = function($http, $cookieStore, $rootScope, $timeout,UserService) {

    }

    AuthenticationService.$inject = ['$http', '$cookieStore', '$rootScope', '$timeout','UserService'];
    angular.module("app.AuthenticationService").factory("AuthenticationService", AuthenticationService);

})(angular);
我用这个开始了一些测试示例,在know in app.js中,我需要做如下操作:

(function(angular) {        
    angular.module("app.AuthenticationService", ['ngCookies']);
    angular.module("app", ['ngRoute','ngResource',"app.AuthenticationService"]);
}(angular));
功能B

(function () {
    'use strict';

    angular
        .module('app')
        .factory('AuthenticationService', AuthenticationService);

    AuthenticationService.$inject = ['$http', '$cookieStore', '$rootScope', '$timeout', 'UserService'];
    function AuthenticationService($http, $cookieStore, $rootScope, $timeout, UserService) {

    }

})();

现在我还没有实用的函数B方法,但我搞不清楚哪种方法更实用,为什么?

这两种方法都可以防止
窗口中定义
身份验证服务

然而,除了estus的回答中提到的缩小之外,将
角度
作为
函数A的参数传递是没有意义的


函数B更好,因为传递
角度
是不必要的,可能会混淆其他人

谢谢您的解释。