Сообщение от Skipp
|
балерун,
ну понятное дело, так как в этой функции идёт обьявление другой.
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, проч. не трогать. А то получается, что я целиком копирую первоначальный код и в нем меняю одну функцию.
Как-нибудь можно частично переопределить, что ли?
Получилось, что разработчик первоначального кода, решил, что функции в будущем меняться не будут и закрыл их внутри, а мне понадобилось изменить... и чужой код править не хочется.