为什么 'window.angular' 在这个函数定义中这样使用?
Why is 'window.angular' used like so, in this function definition?
我正在尝试理解我需要用来与 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 关于 window 的 javascript 概念,它表明 window
部分是浏览器的顶级 (?) 对象在加载页面时创建。
运行 console.log(window.angular)
打印出大量内部 angular 内容。所以我猜这是 AngularJS...?
的内在胆量
但为什么将这种奇怪的封装作为函数(与 JavaScript 作为一种 'functional' 语言有关)?
完整的脚本是 here,我不明白为什么它在此函数定义中使用 window.angular
(与正常的处理方式相反)。似乎此设置意味着当我通过 script
标签导入它时它不适用于我的应用程序。
window.angular
是全局 angularjs 变量,它是在 angularjs 从脚本标签完全加载后创建的。您粘贴的代码片段确保它在填充此变量后执行。它可能以这种冗长的方式编写的原因之一就是它的自动生成性质。在更广泛的上下文中,它可能会影响脚本的执行顺序或使用不同版本的 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));
我看过 this 关于 window 的 javascript 概念,它表明 window
部分是浏览器的顶级 (?) 对象在加载页面时创建。
运行 console.log(window.angular)
打印出大量内部 angular 内容。所以我猜这是 AngularJS...?
但为什么将这种奇怪的封装作为函数(与 JavaScript 作为一种 'functional' 语言有关)?
完整的脚本是 here,我不明白为什么它在此函数定义中使用 window.angular
(与正常的处理方式相反)。似乎此设置意味着当我通过 script
标签导入它时它不适用于我的应用程序。
window.angular
是全局 angularjs 变量,它是在 angularjs 从脚本标签完全加载后创建的。您粘贴的代码片段确保它在填充此变量后执行。它可能以这种冗长的方式编写的原因之一就是它的自动生成性质。在更广泛的上下文中,它可能会影响脚本的执行顺序或使用不同版本的 angularjs 库。