Javascript XPCOM中的依赖注入

Javascript XPCOM中的依赖注入,javascript,dependency-injection,firefox-addon,xpcom,Javascript,Dependency Injection,Firefox Addon,Xpcom,我的一个XPCOM组件使用其他XPCOM组件。当我测试它时,我发现由于依赖关系,它很麻烦。然后,我考虑使用依赖注入在构造函数中传递其他组件。我没有成功。是否可以将其他组件的引用传递到构造函数中 var _foo = Components.classes["@foo.com/foo;1"].createInstance(bar); this.foo = _foo.QueryInterface(Components.interfaces.IFoo); 例如,foo组件需要bar。我可以通过fo

我的一个XPCOM组件使用其他XPCOM组件。当我测试它时,我发现由于依赖关系,它很麻烦。然后,我考虑使用依赖注入在构造函数中传递其他组件。我没有成功。是否可以将其他组件的引用传递到构造函数中

 var _foo = Components.classes["@foo.com/foo;1"].createInstance(bar);
 this.foo = _foo.QueryInterface(Components.interfaces.IFoo);
例如,foo组件需要bar。我可以通过foo的构造函数进入酒吧吗?我试过上面的方法,但没用

是否可以将其他组件的引用传递到构造函数中

 var _foo = Components.classes["@foo.com/foo;1"].createInstance(bar);
 this.foo = _foo.QueryInterface(Components.interfaces.IFoo);
否。
createInstance
的参数是一个接口
.createInstance(接口)
.createInstance().QueryInterface(接口)
的快捷方式

您的问题的答案在于您在问题中没有描述的区域-很可能您不需要从“构造函数”访问其他组件,或者您偶然发现了一个可以修复的问题,而是“依赖项的麻烦原因”,然后继续

是否可以将其他组件的引用传递到构造函数中

 var _foo = Components.classes["@foo.com/foo;1"].createInstance(bar);
 this.foo = _foo.QueryInterface(Components.interfaces.IFoo);
否。
createInstance
的参数是一个接口
.createInstance(接口)
.createInstance().QueryInterface(接口)
的快捷方式

您的问题的答案在于您在问题中没有描述的区域-很可能您不需要从“构造函数”访问其他组件,或者您偶然发现了一个可以修复的问题,而是“依赖项的麻烦原因”,然后继续