为什么在此函数定义中使用'window.angular'如此?

Pur*_*ret 7 javascript functional-programming angularjs

我正在尝试理解我需要用来与Django集成的angularjs文件,它有一个我不熟悉的奇怪语法(记住我是一个初级开发者,所以这可能是你的面包和黄油) ...

它类似于:

(function(angular, undefined){
    'use script';
    var djng_forms_module = angular.module('ng.django.forms', []);
    funtion hasCode(s){
        return .....
    }
    var foo = .....
}(window.angular));
Run Code Online (Sandbox Code Playgroud)

我已经看到关于窗口的javascript概念,它显示该window部分是浏览器在加载页面时创建的顶级(?)级别对象.

跑步console.log(window.angular)打印出一堆内部角度的东西.所以我猜这是AngularJS的内部胆量......?

但是为什么这个奇怪的封装作为一个函数(与JavaScript作为'功能'语言有关)?

完整的脚本在这里,我无法弄清楚它window.angular在这个函数定义中使用的原因(与正常的处理方式相反).看起来这个设置意味着当我通过script标签导入它时,它不能用于我的应用程序.

kpe*_*hev 8

window.angular是一个全局angularjs变量,一旦angularjs从脚本标记完全加载就会创建.您粘贴的代码片段确保在此变量的填充之后执行它.它可能以冗长的方式编写的一个原因就是其自动生成的性质.在更广泛的上下文中,它可能暗示脚本的执行顺序或使用angularjs库的不同版本.