将angular javascript文件包装为“;(function(){..[js-code here]…})()&
Are there any benefits to wrapping angular javascript file with the "(function() { ....[js code here]...... })();"
我一直想知道的简单问题。
我从没有香草javascript背景的angular开始,我很确定这就是事实,但有时我会看到javascript文件具有:
(function() {
'use strict';
....
})();
在文件的开始和结束处,如:
(function() {
'use strict';
angular.module('asdf', []);
angular.controller('asdf' function(){.....})
})();
我不用它,而且一切都很好。所以我的问题是,将javascript文件封装在其中有什么好处吗?
因此,您看到的是一个即时调用的匿名函数。
基本上,使用这个"模式",因为如果你不使用它,你就在全局命名空间中工作javascript开箱即用,这可能会导致不必要的问题,包括第三方库/插件或你编写的其他模块。更多的见解在这里,那里或这里
围绕它的匿名IIFE会导致变量位于新的作用域中,而不是默认作用域,默认作用域在浏览器中是全局的。请参阅:JavaScript中的(function(){})()构造是什么?了解更多信息。
'use strict';
激活IIFE内部的严格模式,这意味着JavaScript中的一些边缘情况将表现出不同的行为(例如抛出错误而不是奇怪的行为)。有关严格模式的更多信息,请参阅MDN文章。
相关文章:
- http://oauth.googlecode.com/svn/code/javascript/oauth.js已关闭,
- 将angular javascript文件包装为“;(function(){..[js-code here]…})()&
- HERE 映射 JS API v3 集群提供程序挂起,添加许多数据点
- HERE 地图 (JS v3) - 将事件侦听器添加到信息气泡
- 有没有办法减少rails-backbone(code brew)包含的JS文件的数量
- Parse.com -- Cloud Code/JS -- “无法调用未定义的方法'set'”
- Visual Studio Code - 如何调试节点.js路由
- conver js code to Greasmonkey sccript
- 如何使用Here map js 3 api获取当前位置
- Visual Studio Code ES7/JS Intellisense
- js variable on html code
- 使用VS Code、TypeScript和Node.js的断点位置不正确
- Node.js TypeError: Object function Object() {[native code]}没
- Node.js有哪些调试选项?特别是在Visual Studio Code中
- 我应该有我的网页引用的jquery.js在我自己的服务器或从code.jquery.com的副本
- HERE映射JS API v3:监听' clusteringend '事件
- EXT JS code to jQuery
- 使用带有传单的交通瓦片更新HERE地图.js
- HERE 映射 JS API v3: 'onceEventListener' 方法 bug
- 调试节点.JS在 VS Code EADDRINUSE 错误上