我有一个使用 JavaScript 编写的支付网关 API 包装器。
但是它的设计很糟糕。
它使用163个全局(窗口)对象。
我想做的是
获取API包装器生成的所有全局对象
并将它们全部放入一个名为“PG”的对象中。
所以我可以使用它的方法
PG.methodName()
并通过以下方式获取变量
PG.variableName
如何使用 JavaScript 实现此目的?
或者还有其他方法来加载带有命名空间的脚本吗?
<小时/>这是有问题的 JS 库:See Gist
最佳答案
您可以创建一个虚拟 JavaScript 对象并向其添加函数和变量,如下所示:
var PG = PG || {};
PG.methodName = apiMethodName;
PG.variable = variableName;
此方法将在 PG
范围内创建其重复项,同时将原始函数保留在 window
范围内。为了将它们移出全局范围,您必须修改 api 脚本本身,这可能不是一个好主意。
关于javascript - 如何用函数包装 JS 库并将其放入命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546796/