Encontré este código mientras intentaba entender cómo el motor de JavaScript interpreta las funciones de contenedor. Quiero saber cuáles son los pasos que toma el motor cuando ejecuta el código de la función contenedora y quiero saber a qué se refiere esto en el contexto de una función envuelta cuando se pasa a otra variable que la ejecuta más tarde.
function profile(func, funcName) { return function () { var start = new Date(), returnVal = func.apply(this, arguments), end = new Date(), duration = stop.getTime() - start.getTime(); console.log(`${funcName} took ${duration} ms to execute`); return returnVal; }; } var profiledMax = profile(Math.max, 'Math.max'); profiledMax.call(Math, 1, 2);