Tengo la siguiente función existente a la que no puedo acceder ni cambiar. Así que tuve que almacenarlo en caché y agregarle otras funciones.
La función se carga periódicamente y, a veces, se carga al cargar la página y, a veces, no. Las funciones adicionales que le he agregado, sin embargo, nunca quiero cargar en la carga de la página.
He intentado lo siguiente sin suerte. No puedo evitar que update_scores se cargue en la carga de la página, por lo que if(onSwitch) es verdadero, entonces y solo entonces quiero agregar algo más a la función existente. Una vez que onSwith es verdadero, entonces necesito que todas las funciones adicionales se ejecuten siempre cuando se ejecuta update_scores, pero inicialmente solo después de que se llame a otra función click().
function click() { update_scores(true); } update_scores = (function(onSwitch) { var cached_function = update_scores; return function() { let update_scores=true; // always do something below when update_scores after function click ran once cached_function.apply(this, arguments); if(onSwitch) { //Do something only when function click is ran or until onSwith is defined as true } }; }());ok, pude lograrlo configurando una variable global, luego cambiándola cuando ejecuté otra función
var onSwitch = false; function click() { update_scores(true); onSwitch = true; } update_scores = (function(onSwitch) { var cached_function = update_scores; return function() { cached_function.apply(this, arguments); if(onSwitch) { //Do something only when function click is ran or until onSwith is defined as true } }; }());