angularjs – 在匿名函数中包装控制器

前端之家收集整理的这篇文章主要介绍了angularjs – 在匿名函数中包装控制器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是否:
(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代码包装在匿名函数中的原因是将它与页面上的其他代码隔离开来。

以下代码将在全局作用域上声明名为name的变量:

var name = "Hello World";

通过使用该代码页面上尝试使用名为name的变量的任何其他脚本可能获得“Hello World”的意外值,因为您的脚本将其声明为“Hello World”。

通过将该代码包装在匿名函数中,可以防止代码与名为name的其他变量冲突:

(function() {
    var name = "Hello World";
})();

在上面的示例中,name现在只在匿名函数的作用域内可用。它不是全局的,因此不能与页面上的其他代码冲突。

在您提供的第二个代码段中,应用程序现在将是一个全局变量,可能会被其他人声明为名为app的全局变量覆盖。通过将Angular模块包装在匿名函数中,可以防止代码与其他代码冲突。

此外,其他可能使用您的代码的人不必担心它会更改其全局范围。

原文链接:https://www.f2er.com/angularjs/145180.html

猜你在找的Angularjs相关文章