var BigObject = (function() {
function deepCalculate(a, b, c) {
return a + b + c;
}
function calculate(x) {
deepCalculate(x, x, x);
}
return {
calculate: calculate,
api: {
deepCalculate: deepCalculate
}
}
})();
这是我保留的带有私有功能的基本自我执行功能api
。我遇到的问题是现在我无法deepCalculate
从函数外部覆盖。
这怎么成问题?我使用Jasmine
并想测试是否调用了函数。例如:
spyOn(BigObject, 'calculate').andCallThrough();
expect(BigObject.api.deepCalculate).toHaveBeenCalled();
失败。但是,当我调试时,我确信 Jasmine 绑定BigObject.api.deepCalculate
为间谍,但是从内部计算仍然调用原始deepCalculate
函数而不是间谍。
我想知道如何覆盖该函数而不仅仅是它的参考。