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