我是js oop的新手,到目前为止还有以下代码:
(function (ns) {
ns.addSection = function (name, def) {
ns[name] = new def();
}
}(this.PG_GuiHelper = this.PG_GuiHelper || {}));
/**
* HOVERTIP
*
* shows submenu on click / hover
*/
PG_GuiHelper.addSection('hovertip',function(){
var section = this;
/**
* init
*/
section.init = function() {
section.registerListener();
}
现在我有第二个文件,其中包含表单的帮助程序。还有与此代码相同的ns闭包。两者都很好。
目标:
档案ns.js
(function (ns) {
ns.addSection = function (name, def) {
ns[name] = new def();
}
}(this.PG_Library = this.PG_Library || {}));
现在问我的问题:如何在我现有的hovertip帮助器中添加一个新的“section”来至少获得这个调用:PG_Library.guiHelper.hovertip.init();
现有的调用现在是:PG_GuiHelper.hovertip.init()。我希望你明白我的意思。 所有文件均为1 ns。每个文件都可以有自己的子部分。所有都用PG_Library.section.subsection.function()处理。
答案 0 :(得分:1)
使用此:
window.PG_Library.guiHelper = window.PG_GuiHelper;
在您的情况下,您将PG_Library
和PG_GuiHelper
添加到window
,这样就可以了。
如果你想拥有一个全局(这是一个好主意:-)),你可以使用:
var PG = {};
PG.GuiHelper = {};
(function (ns) {
ns.addSection = function (name, def) {
ns[name] = new def();
}
}(PG.GuiHelper));
/**
* HOVERTIP
*
* shows submenu on click / hover
*/
PG.GuiHelper.addSection('hovertip', function() {
var section = this;
/**
* init
*/
section.init = function() {
section.registerListener();
}
});
分别为:PG.Library.guiHelper = PG.GuiHelper;
答案 1 :(得分:0)
您只需将现有的PG_GuiHelper
添加为PG_Library
的新部分:
PG_Library.addSection("guiHelper", function() {
return PG_GuiHelper;
});