Monkey patching cache

другие самплы
function calcx1(a,b, D){
      return some_formula1(a,b,D)
}

function calcx2(a,b, D){
      return some_formula2(a,b,D)
}


function dcalc (a,b,c){
     let D= dcalc.cache[[a,b,c].toString()] = (dcalc.cache || dcalc.cache={})[[a,b,c].toString()] || some_calc
     return function (func){
        func(a, b, D)
     }
}

let calcWrap = dcalc(1,1,1)
let x1 = calcWrap(calcx1)
let x2 = calcWrap(calcx2)



/// output:


// ReferenceError: вычисляем is not defined
(ваш голос учтен)

Прикрепить файл