问题描述
作为JS的初学者,我想了解let
声明的一种用法,如下所示,
您可以使用let定义为扩展中的伪命名空间代码加上别名。 (请参阅扩展中的安全性最佳实践。)
let Cc = Components.classes, Ci = Components.interfaces;
什么是伪命名空间代码?
如何使用let
关键字对伪命名空间代码进行别名?
1楼
在使用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
关键字一起使用,尽管您不会从块作用域等功能中受益。