Javascript 如何使用let关键字别名伪命名空间代码?
作为JS的初学者,我想了解Javascript 如何使用let关键字别名伪命名空间代码?,javascript,ecmascript-6,Javascript,Ecmascript 6,作为JS的初学者,我想了解let声明的一种用法,如下所示: 您可以使用let定义在扩展中别名伪命名空间代码。(请参阅扩展中的安全最佳实践。) 让Cc=Components.class,Ci=Components.interfaces 什么是伪命名空间代码 如何使用let关键字别名伪命名空间代码?在Javascript中处理命名空间时,总是指定完整命名空间来访问值或方法可能会很快变得烦人。例如: let myModule = { mySubModule: { mySubSubModul
let
声明的一种用法,如下所示:
您可以使用let定义在扩展中别名伪命名空间代码。(请参阅扩展中的安全最佳实践。)
让Cc=Components.class,Ci=Components.interfaces代码>
什么是伪命名空间代码
如何使用let
关键字别名伪命名空间代码?在Javascript中处理命名空间时,总是指定完整命名空间来访问值或方法可能会很快变得烦人。例如:
let myModule = {
mySubModule: {
mySubSubModule: {
myMethod: function () {}
}
}
};
// to use myMethod, we need to write the full namespace
myModule.mySubModule.mySubSubModule.myMethod();
通过将“路径”存储在变量中,我们可以避免每次需要调用myMethod时都写入完整的命名空间:
let shortcut = myModule.mySubModule.mySubSubModule;
shortcut.myMethod();
我真的不明白为什么会有专门针对Firefox扩展的段落。只要您的浏览器理解Ecmascript 6规范的let
关键字,您就可以自由地将此技术用于任何您想要的名称空间。它也适用于var
关键字,尽管您不会从诸如块作用域之类的功能中受益。MyModule是一个简单的字典。为什么要调用模块?我不能使用var关键字吗?Javascript中没有模块和名称空间之类的东西。为了实现这一点,我们使用文字对象(或地图、字典)。这里有一个指向Javascript中模块设计模式实现的链接:。编辑:是的,您可以使用var
关键字,除了let
是块范围的,而不是var
@Brunt:ES6 FYI中有模块,let
与名称空间没有任何关系。这只是创建变量的另一种方式。JFTR,我已经从MDN中删除了这一段。