我正在尝试理解我需要用来与Django集成的angularjs文件,它有一个我不熟悉的奇怪语法(请记住我是一个初级开发者,所以这可能是你的面包和黄油... ...
它类似于:
(function(angular, undefined){
'use script';
var djng_forms_module = angular.module('ng.django.forms', []);
funtion hasCode(s){
return .....
}
var foo = .....
}(window.angular));
我看过this关于窗口的javascript概念,它显示window
部分是浏览器在加载页面时创建的顶级(?)级别对象。
运行console.log(window.angular)
打印出一堆内部角度内容。所以我猜这是AngularJS的内部胆量......?
但为什么这种奇怪的封装作为一种功能(与JavaScript有关的是'功能'语言)?
完整的脚本是here,我无法弄清楚为什么它在这个函数定义中使用window.angular
(而不是正常的做事方式)。看起来这个设置意味着当我通过script
标签导入它时,它不能用于我的应用程序。
答案 0 :(得分:8)
window.angular
是全局angularjs变量,一旦angularjs从脚本标记中完全加载,就会创建该变量。您粘贴的代码片段确保在此变量的填充之后执行它。它可能以冗长的方式编写的一个原因就是其自动生成的性质。在更广泛的上下文中,它可能暗示脚本执行的顺序或使用angularjs库的不同版本。