そのため、Firefox 拡張機能では、拡張機能のオブジェクトを com.contoso.myExtension などのサブオブジェクトに配置することをお勧めします。そうすれば、グローバル名前空間にオブジェクトを配置せず、拡張機能は通常、お互いの髪の毛から離れます。(少なくとも一般的な browser.xul ウィンドウでは)
しかし、 Javascript コード モジュール (JSM)について私が理解していることは、モジュール自体が別の名前空間で動作している間、それがエクスポートするシンボルは、それをインポートするコードのグローバルな名前空間で終わるということです。さらに、エクステンションが「ナイス」であり、サブオブジェクトのみを構築しようとすることは不可能です。これらのエクスポートされたシンボルは、すでに存在するグローバル変数を攻撃するだけです。また、com.contoso.myExtension のようなシンボルをエクスポートすることはできません。これは単なるグローバル変数です。
では、JSM を使用するときに適切にプレイするためのプロトコルは何ですか? 非常に長い変数名を作成し、それらが衝突しないことを願っていますか?