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();
이 실패합니다. 그러나 내가 디버깅 할 때, 나는 재 스민이 스파이로 BigObject.api.deepCalculate
을 묶는다는 것을 확신하지만, 내부에서 여전히 원래의 deepCalculate
함수를 호출하고 스파이가 아닌 함수를 호출한다.
나는 함수에 대한 참조가 아니라 어떻게 덮어 쓸 수 있는지 알고 싶습니다.
마지막 줄에 중괄호가 없습니다. –
예, 그렇다고해도 별 차이가 없습니다. 그것은 단지 목적을위한 것입니다. –