为什么在这个函数定义中要像这样使用 'window.angular'?

8
我是一名初级开发者,现在需要使用一个AngularJS文件来与Django进行集成,但是该文件的语法很奇怪,我不太熟悉。以下是其中的一些代码段:
(function(angular, undefined){
    'use script';
    var djng_forms_module = angular.module('ng.django.forms', []);
    funtion hasCode(s){
        return .....
    }
    var foo = .....
}(window.angular));

我看到了关于javascript中window概念的这个,它显示window部分是浏览器在加载页面时创建的顶级对象。

运行console.log(window.angular)会输出大量的内部AngularJS内容。所以我猜这是AngularJS的内部机制...?

但为什么要将其封装为一个函数(与JavaScript作为“函数式”语言有关)?

完整的脚本在这里,我无法理解为什么它在这个函数定义中使用window.angular(而不是正常的方式)。这似乎意味着当我通过script标签导入它时,它不能为我的应用程序工作。

1个回答

8

window.angular是全局的angularjs变量,它在从脚本标签完全加载angularjs后创建。你贴上的代码片段确保它在该变量填充后执行。它可能以那种冗长的方式编写的原因之一是它的自动生成性质。在更广泛的背景下,它可能对脚本的执行顺序或使用不同版本的angularjs库有影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接