两个闭包有什么区别?
What is diffence between two closures?
我正在使用我的 js 文件:
(function() {
'use strict';
angular
.module('app.someModule')
.config(config);
function config(someDependency){
//some configuration
}
config.$inject=['someDependency'];
})();
但是我看到当我使用闭包时有些人将闭包注入 angular 对象本身。类似于:
(function(angular){/*whatever logic*/})(angular);
哪种用法更好或者两种用法有什么区别吗?
所以我没有像往常一样添加全局 angular 变量,这样不会造成任何麻烦?
两个立即执行的函数 (IIFE) 之间的区别在于,在第二种情况下,您使用一个参数 angular
调用函数。它可以提供的好处是性能略有提高,因为 Javascript 引擎不需要在全局范围内查找变量,因为 angular
对象在本地闭包范围内作为传递的引用可用函数调用(但当然它仍然指向在全局范围内定义的同一个 Angular 对象)。
我正在使用我的 js 文件:
(function() {
'use strict';
angular
.module('app.someModule')
.config(config);
function config(someDependency){
//some configuration
}
config.$inject=['someDependency'];
})();
但是我看到当我使用闭包时有些人将闭包注入 angular 对象本身。类似于:
(function(angular){/*whatever logic*/})(angular);
哪种用法更好或者两种用法有什么区别吗?
所以我没有像往常一样添加全局 angular 变量,这样不会造成任何麻烦?
两个立即执行的函数 (IIFE) 之间的区别在于,在第二种情况下,您使用一个参数 angular
调用函数。它可以提供的好处是性能略有提高,因为 Javascript 引擎不需要在全局范围内查找变量,因为 angular
对象在本地闭包范围内作为传递的引用可用函数调用(但当然它仍然指向在全局范围内定义的同一个 Angular 对象)。