javascript - 如何使用let关键字为伪命名空间代码添加别名?

标签 javascript ecmascript-6

作为一个 JS 初学者,我想了解一下 let 声明的一种用法,如下 MDN 所示,

You can use let definitions to alias pseudo-namespaced code in extensions. (See Security best practices in extensions.)

let Cc = Components.classes, 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 关键字一起使用,但您不会从 block 作用域等功能中受益。

关于javascript - 如何使用let关键字为伪命名空间代码添加别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31891479/

相关文章:

javascript - 如何在 JavaScript 中进行字符串插值?

javascript - React 和 ES6 继承

javascript - 在 ES6 中替代 .on ('error' , this.onError.bind(this)) ?

javascript - 将字符串添加到文本区域元素中的新行

javascript - 在 ES6 中自动将参数设置为实例属性

Javascript 迭代 Json 数组获取值

javascript - Jquery 不适用于附加内容

javascript - 如何访问外部加载的 svg 文件的 id?

javascript - 如何在 ES6 模块中导入部分对象

javascript - 如何在 jsRender 模板内使用在 View 页面中声明的 C# 变量