命名空间和词法范围之间的关系是什么
What is the relationship between namespace and lexical scope?
据我了解,词汇范围是名称空间的子集。命名空间和词法范围之间的关系是什么?
命名空间
是代码的组织单元。通常,它们是通过使用对象文字上的属性在 JavaScript 中实现的,但还有更复杂的实现。
简单的例子:
var myApp = {}; // Root 'namespace'.
myApp.services = {}; // 'Namespace' for service constructor functions.
myApp.controllers = {}; // 'Namespace' for controller constructor functions.
myApp.controllers.UserController = function() { /* ... */ };
// Usage.
var userController = new myApp.controllers.UserController();
词法范围是一个完全正交的概念,它与一段代码中变量的可见性相关联。范围由 JavaScript 中的函数定义。非常现代的 JavaScript 实现还包括块范围的机制,但你不会看到它在野外经常使用。
例:
function f() {
var x = 'foo';
}
console.log(x); // undefined because the scope of x is the function f.
相关文章:
- 这是什么 ==- javascript 运算符
- 我的单元测试选项是什么
- 打破承诺链的好方法是什么
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- JSDoc:模块和名称空间之间的关系是什么
- 当一个模型在骨干关系中被销毁时,销毁相关模型的最佳方法是什么?
- 负载角度依赖关系之间的区别是什么,共享模块的最佳方式是什么
- 命名空间和词法范围之间的关系是什么
- Javascript:属性描述符和内置属性属性之间的关系是什么
- DOM、原始 html 以及页面上显示的内容是什么关系
- 依赖关系中“./has!dom-addeventlistener?:./aspect”是什么意思
- 文档和元素之间的关系是什么?为什么父元素也有getElementsByTagName方法
- Javascript中的函数和函数之间的关系是什么
- 分发带有依赖关系的可重用JavaScript模块的最佳方式是什么?
- tsconfig和tsconfig之间是什么关系?Json和gulp.js
- 函数和值之间的关系是什么?
- Number和Function之间的关系是什么?javascript中的原型
- JavaScript:处理器速度和代码速度之间的关系是什么?
- ES6、ES7(及更大版本)、ES2015、阶段0、阶段1(及更大版本)之间的关系是什么?
- JavaScript对象和HTML之间的关系是什么?