加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 08:27:23 所属栏目:安全 来源:网络整理
导读:我是否: (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 boo
我是否:
(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模块包装在匿名函数中,可以防止代码与其他代码冲突。

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读