Javascript 如何访问';私人职能';在一个单体中,从它内部的另一个对象

Javascript 如何访问';私人职能';在一个单体中,从它内部的另一个对象,javascript,prototype,singleton,Javascript,Prototype,Singleton,我目前正在尝试为我的javascript应用程序创建一个测试套件。我的问题是,我似乎无法从我的utils对象访问init(),如下所示: 我的应用程序遵循单例模式: var appModal = function () { var utils = Object.create(moduleUtils); function init(caller, options ) { } }(); 我的测试套件在moduleUtils中,这是一个转换为原型的对象文本 moduleUt

我目前正在尝试为我的javascript应用程序创建一个测试套件。我的问题是,我似乎无法从我的utils对象访问init(),如下所示:

我的应用程序遵循单例模式:

var appModal = function () {
    var utils = Object.create(moduleUtils);
     function init(caller, options ) {
    }
}();
我的测试套件在moduleUtils中,这是一个转换为原型的对象文本

moduleUtils.debug = {
    addSlideTest : function(){
        /* this function cannot fire init() from appModal */
}}
这是不可能的。
您需要在公开可见的对象中公开closured函数

例如,您可以在单元测试中创建一个
testMethods
对象来收集私有方法。然后,如果对象存在,主文件将向该对象添加私有方法,如下所示:

//In appModal
if (typeof testMethods === "object")
    testMethods.init = init;

//In test suite
testMethods = { };
...
testMethods.init();

看,这并不完美,但比不测试要好得多