用自定义javascript全局命名空间替换窗口
Replacing window with custom javascript global namespace
我有一个javascript函数,用于初始化游戏的一组全局变量。
function buildVariables(fs,fm) {
window.p1HPStart = fm.p1hp;
window.p2HPStart = fm.p2hp;
window.p1HP = 100;
window.p2HP = 100;
window.trn = 0;
}
现在,所有这些javascript都在同一个HTML文件中。我想把它移到自己的.js文件中,并把它包含在这个HTML文件中。我还想用一个不同的全局名称空间来代替"window",比如fight.p1HP.
我该怎么做?
在其他类似的问题中,我看到了下面这样的代码作为建议的答案,但我不太明白如何使用它来替换window。
var cartTotaler = (function () {
var total = 0; tax = 0.05;
// other code
return {
addItem : function (item) { },
removeItem : function (item) { },
calculateTitle : function () { }
};
}());
谢谢。
// initialize your own global object
if (!window.mySpace) {
window.mySpace = {};
}
// then use it
function buildVariables(fs,fm) {
mySpace.p1HPStart = fm.p1hp;
mySpace.p2HPStart = fm.p2hp;
mySpace.p1HP = 100;
mySpace.p2HP = 100;
mySpace.trn = 0;
}
然后,只要确保在任何你想要自己的变量的地方,你都在它前面使用你的命名空间:
mySpace.variableName
注意:这并不能真正"替换"window
对象(因为没有办法做到这一点)——它只是将所有全局变量放在一个主全局对象中,而不是用每个变量污染全局命名空间。
名称mySpace
可以是您想要的任何名称。通常,它应该是您的应用程序独有的名称,不太可能与任何其他javascript或库使用的名称冲突。
(function(global){
global.p1HPStart = fm.p1hp;
global.p2HPStart = fm.p2hp;
global.p1HP = 100;
global.p2HP = 100;
global.trn = 0;
}(window));
这将创建一个"立即调用的函数表达式"。window
被传递到函数中,然后函数会为它附加一些属性
您可以将window
更改为所需的任何对象,例如fight.p1HP
,此函数将立即将列出的属性附加到该对象。
相关文章:
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 用自定义javascript全局命名空间替换窗口
- 每次单击时打开新窗口的 JavaScript 代码正在替换旧窗口并创建新的空白窗口
- 如何用 jquery 替换 img src 以获得不同的窗口大小
- 将窗口位置替换为锚点
- 隐藏 DIV,如果窗口窄于 DIV,则替换为 DIV
- IE10 单击缩略图会在新窗口中打开大图像,而不是替换特色图像
- 将弹出窗口替换为引导模式
- 需要在弹出窗口中显示加载 gif,然后将其替换为 ajax 内容
- 停止窗口.位置.替换重定向
- 窗口中打开将替换当前选项卡以及打开新选项卡
- 将弹出页面上的页面链接替换为要在主(父)窗口中打开的Javascript
- 从弹出窗口使用jquery替换文本区域中的img src
- 如何替换窗口中的文档
- JSP会话丢失后,javascript窗口替换位置与其他JSP页面
- 如何根据窗口大小替换img
- 窗口替换后执行函数
- jQuery:替换窗口.历史条目
- 用JavaScript打开一个全新的窗口,而不替换前一个窗口的内容
- 将窗口的内容替换为 iframe 的内容_top而无需重新加载页面