在多个文件中的JS OOP结构
JS OOP - structure in multiple files
我是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帮助至少得到这个调用:PG_Library.guiHelper.hovertip.init();
现有的调用现在是:PG_GuiHelper.hovertip.init()。我希望你明白我的意思。所有文件的1ns函数。每个文件都可以有自己的带有子节的节。并使用PG_Library.section.subsection.function()处理。
使用
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;
您可以简单地将现有的PG_GuiHelper
作为一个新的部分添加到您的PG_Library
:
PG_Library.addSection("guiHelper", function() {
return PG_GuiHelper;
});
相关文章:
- JQuery AJAX 和 OOP JS 范围困境
- JQuery, ajax and js OOP
- 在OOP node.js框架Danf中是否确保了接口
- 在JS中使用OOP的几种格式
- 这是有效的 js oop
- 编辑尝试使用 OOP 在 js 中创建库
- JS OOP 初学者培训的错误
- Javascript OOP, getters, setters, run - D3.js - 通过选项设置使图形可重用
- problems with 'this' in OOP JS
- JS中的OOP,this.init.apply如何使用OOP
- 如何在构造函数中访问类变量?(node . js OOP)
- 在多个文件中的JS OOP结构
- 这段JS代码是正确的OOP吗
- jQuery AJAX问题?或者JS OOP作用域问题
- JS OOP:原型上的方法vs构造函数中的方法
- 调用方法的事件宽度JS OOP(原型)
- JS OOP和强制重写
- JS OOP内置对象数组
- JS: OOP私有函数/私有字段
- JS OOP -由对象创建多个定时器,但只有一个有效