К сожалению, невозможно перечислить или динамически получить доступ к элементам в объекте области (за исключением удобного глобального объекта области / окна)
Так что вам нужно немного перефразировать ваш код. Вместо того, чтобы иметь свободно плавающие функции в вашей внешней функции, используйте объекты с методами. Это сделало бы замену этих методов намного проще.
Есть некоторая дополнительная хитрость, если вы изменяете свои функции после того, как начали назначать их в качестве обработчиков событий или чего-то еще. Если вам случится использовать какую-то оболочку bind () для этих функций, правильность вашего поведения во многом будет зависеть от этой функции bind ().
В частности, если вы хотите, чтобы метод замены стал задним числом методом, вызываемым для любого обработчика событий или обратного вызова, которому он был назначен, вам нужно использовать оболочку bind (), которая принимает объект контекста и строку, предназначенную имя функции, а не объект контекста и ссылка на функцию. (и убедитесь, что bind () не разрешает эту строку раньше, чтобы сбрасывать несколько мс при каждом вызове.)
Если вы не хотите задним числом, вам все равно нужно убедиться, что у вас нет некоторой версии оригинального метода, привязанной к bind (), и которая все еще используется для новых обратных вызовов после того, как произошла ваша замена .