因此,在 Firefox 扩展中,鼓励扩展的对象存在于 com.contoso.myExtension 之类的子对象中。这样,您就没有将任何对象放在全局命名空间中,并且扩展通常不会互相影响。(至少在常见的 browser.xul 窗口中)
但是根据我对Javascript 代码模块 (JSM)的了解,虽然模块本身在单独的命名空间中工作,但它导出的符号最终会出现在导入它的任何代码的全局命名空间中。此外,扩展不可能是“好的”并且只尝试构建子对象;这些导出的符号只会破坏已经存在的任何全局变量。您也不能导出像 com.contoso.myExtension 这样的符号。它只是一个简单的全局变量。
那么在使用 JSM 时玩得更好的协议是什么?只是制作很长的变量名并希望它们不会发生冲突?