Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Переписать из вне функцию, находящуюся внутри другой функции (https://javascript.ru/forum/misc/16602-perepisat-iz-vne-funkciyu-nakhodyashhuyusya-vnutri-drugojj-funkcii.html)

балерун 15.04.2011 14:13

Цитата:

Сообщение от Skipp (Сообщение 100748)
балерун,
ну понятное дело, так как в этой функции идёт обьявление другой.
obj.original = function(){
// А это переопределить нельзя?
}


var obj= {};
obj.original = function()
{
    function oldCompute(){ return "Я глобальная функция хоть и в теле другой и всем пофиг где я лежу"; }
    function other1(){return "other1"; }
    function other2(){return "other2"; }
    return oldCompute() + "\n" + other1() + "\n" + other2();
}


function oldCompute(){ return "Надо всего лишь попробовать."; }
alert(obj.original());
obj.original = function()
{
    function oldCompute(){ return "Надо всего лишь попробовать 2."; }
    function other1(){return "other1"; }
    function other2(){return "other2"; }
    return oldCompute() + "\n" + other1() + "\n" + other2();
}
alert(obj.original());


Во, это уже близко. Мне нужно изменить поведение только oldCompute, а функции other1, other2, проч. не трогать. А то получается, что я целиком копирую первоначальный код и в нем меняю одну функцию.
Как-нибудь можно частично переопределить, что ли?
Получилось, что разработчик первоначального кода, решил, что функции в будущем меняться не будут и закрыл их внутри, а мне понадобилось изменить... и чужой код править не хочется.


Часовой пояс GMT +3, время: 00:50.