我有一个包含一些方法的包(节点模块),但不幸的是它们是以一种奇怪的方式构造的。所有方法都引用仅存在于包内的变量(本地变量)。
例如:
var theVar = {};
module.exports.foo = function() {
theVar.someMethod();
}
好吧,我想在我的新库中覆盖其中的一些方法,但由于 theVar 而不能这样做。它的值当然指向旧的东西,但我需要让它指向一个新的对象。
有人可以告诉我如何覆盖这些方法吗?这在JS中甚至可能吗?
提前致谢
编辑
所以只是为了确保我正确理解这一点:
theVar 实际上是这样定义的:
var theVar = module.exports.theVar = {....}
但是,模块的所有方法都使用它,例如:
exports.func = function() {
theVar.method() // and not exports.theVar.method()
}
所以这意味着, theVar 不能改变,对吧?我只能更改exports.theVar。