我正在使用我的js文件,如:
(function() {
'use strict';
angular
.module('app.someModule')
.config(config);
function config(someDependency){
//some configuration
}
config.$inject=['someDependency'];
})();
但是我看到当我使用闭包时,有些人将角形物体本身注入闭合物。类似的东西:
(function(angular){/*whatever logic*/})(angular);
哪一种更好用或两种用法之间有什么区别?
所以我不会一直添加全局角度变量,不会造成任何麻烦?
答案 0 :(得分:1)
两个立即执行的函数(IIFE)之间的区别在于,在第二种情况下,您使用一个参数angular
调用函数。它可以带来的好处是性能略有提高,因为Javascript引擎不需要在全局范围内查找变量,因为angular
对象在本地闭包作用域中可用作为通过函数调用传递的引用(但是当然它仍指向同一个Angular对象,在全局范围内定义。