Pregunta

En JavaScript, ¿cómo puedes crear una nueva función con el mismo nombre que una función existente, al mismo tiempo preservar la función original por lo que podría ser llamado desde dentro de la nueva?

¿Fue útil?

Solución

Se puede pasar a la función original en una función anónima que devuelve una función de sustitución que tiene acceso a la función original.

por ejemplo.

parseInt = (function parseInt(original) {
    return function (x) {
        console.log("original would've returned " + original(x));

        // just random 'new' functionality
        return (x | 0) * 2;
    };
}(parseInt));

Ejemplo de salida:

>> parseInt(10);
<< original would've returned 10
<< 20

Otros consejos

Se desea implementar función de envolver , compruebe los artículos siguientes:

Simplemente podría asignar la función de edad a una variable con un nombre diferente:

var old_parseInt = parseInt;

function parseInt(s) {
   return old_parseInt(s) + 1;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top