我是否:
(function () { 'use strict'; // Create the module and define its dependencies. var app = angular.module('app',[ // Angular modules 'ngAnimate',// animations 'ngRoute' // routing // Custom modules // 3rd Party Modules ]); // Execute bootstrapping code and any dependencies. app.run(['$log',function ($log) { $log.log('we are loaded'); }]); })();
要么
'use strict'; // Create the module and define its dependencies. var app = angular.module('app',function ($log) { $log.log('we are loaded'); }]);
两者似乎都工作 – 有什么区别?
我会欣赏解释什么是匿名函数,当我会使用一个,为什么我看到控制器写两种方式为AngularJs。
谢谢!
两者都会工作。你会发现很多JavaScript代码包装在匿名函数中的原因是将它与页面上的其他代码隔离开来。
原文链接:https://www.f2er.com/angularjs/145180.html以下代码将在全局作用域上声明名为name的变量:
var name = "Hello World";
通过使用该代码,页面上尝试使用名为name的变量的任何其他脚本可能获得“Hello World”的意外值,因为您的脚本将其声明为“Hello World”。
通过将该代码包装在匿名函数中,可以防止代码与名为name的其他变量冲突:
(function() { var name = "Hello World"; })();
在上面的示例中,name现在只在匿名函数的作用域内可用。它不是全局的,因此不能与页面上的其他代码冲突。
在您提供的第二个代码段中,应用程序现在将是一个全局变量,可能会被其他人声明为名为app的全局变量覆盖。通过将Angular模块包装在匿名函数中,可以防止代码与其他代码冲突。
此外,其他可能使用您的代码的人不必担心它会更改其全局范围。