2015-02-23 61 views
3

我用我的js文件,如:两个闭包之间有什么不同?

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

但是我在使用封我一些人注入角度对象本身的封闭看到。例如:

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

哪一个是更好的用法还是两者之间有什么区别?

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

回答

1

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

相关问题