Вопрос

В JavaScript, как можно создать новую функцию с тем же именем, что и существующая функция, в то время как также сохранение исходной функции, чтобы ее можно было вызвать из нового?

Это было полезно?

Решение

Вы можете передавать оригинальную функцию в анонимную функцию, которая возвращает функцию замены, которая имеет доступ к исходной функции.

Например

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

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

Пример вывода:

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

Другие советы

Вы хотите реализовать Функциональная упаковка, Проверьте следующие статьи:

Вы можете просто назначить старую функцию переменной с другим именем:

var old_parseInt = parseInt;

function parseInt(s) {
   return old_parseInt(s) + 1;
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top