如何从另一个模块JS对象中的JavaScript对象访问函数和变量?
我正在构建一个在后端使用JavaScript和PHP的应用程序。它将允许用户构建插件/模块来扩展应用程序 基于JavaScript结构,如下面的对象如何从另一个模块JS对象中的JavaScript对象访问函数和变量?,javascript,Javascript,我正在构建一个在后端使用JavaScript和PHP的应用程序。它将允许用户构建插件/模块来扩展应用程序 基于JavaScript结构,如下面的对象var WebDevApp={} 我怎样才能使其他模块(包括kude there)在页面中拥有JavaScript文件,能够访问我下面的核心代码中的there对象,并允许他们在那里的代码中访问该对象 例如,如果加载了一个名为Bookmarks的模块,那么它将有一个类似这样的JS对象 var WebDevApp.Bookmarks = { }
var WebDevApp={}
我怎样才能使其他模块(包括kude there)在页面中拥有JavaScript文件,能够访问我下面的核心代码中的there对象,并允许他们在那里的代码中访问该对象
例如,如果加载了一个名为Bookmarks
的模块,那么它将有一个类似这样的JS对象
var WebDevApp.Bookmarks = {
}
WebDevApp.Bookmarks.getJsonData();
在我下面的核心代码中,我可以像这样从上面调用函数
var WebDevApp.Bookmarks = {
}
WebDevApp.Bookmarks.getJsonData();
在模块JS代码中,我应该能够从核心代码中调用如下内容
WebDevApp.cache.varFromCoreJsObjectCalledFromModule
我希望模块扩展的核心JS对象代码…
var WebDevApp = {
modulesJson: '',
cache: {
templates: {},
},
init: function() {
},
events: function() {
// all the dom devents from other JS files ................
WebDevApp.Bookmarks.domEvents();
WebDevApp.OtherModuleName.domEvents();
},
loadJSONData: function() {
// load JSON Data from the other Module JS files
WebDevApp.Bookmarks.loadJSONData();
WebDevApp.OtherModuleName.loadJSONData();
},
}
// run app
jQuery(document).ready(function($) {
WebDevApp.init();
});
我认为您可能需要确保您的核心模块没有与其他模块紧密耦合。您可以通过确保向core注册其他模块来实现这一点(假设存在模块数组属性):
WebDevApp.modules.push(WebDevApp.Bookmarks);
然后在events和loadJSONData函数中,您将拥有如下逻辑:
WebDevApp.modules.forEach(函数(mod)){
mod.domEvents();
});
我认为您可能需要确保您的核心模块没有与其他模块紧密耦合。您可以通过确保向core注册其他模块来实现这一点(假设存在模块数组属性):
WebDevApp.modules.push(WebDevApp.Bookmarks);
然后在events和loadJSONData函数中,您将拥有如下逻辑:
WebDevApp.modules.forEach(函数(mod)){
mod.domEvents();
});
对不起,你的问题是什么?你想做什么你做不到的事?对不起,你的问题是什么?你想做什么你做不到的事?