Я думаю, что вы можете сделать это с помощью оператора "новая функция".Я никогда не использовал его сам, так как я не психически ненормальный, но я верю, что вы можете передать ему строку, которую он будет eval
использовать, и использовать в качестве тела функции.Вы также можете получить код для каждой функции, вызвав myFunction.toString()
.Итак, все вместе, это было бы что-то вроде этого:
var functionsToMessUp = ['myFunc1', 'myFunc2'];
for (var i = 0; i < functionsToMessUp.length; ++i) {
var theFunc = window[functionsToMessUp[i]]; // assuming they're in global scope
window[functionsToMessUp[i]] = new Function(
START_OF_EVERY_FUNCTION
+ theFunc.toString()
+ END_OF_EVERY_FUNCTION
);
}
Теперь вышесказанное почти наверняка не сработает - есть параметры и другие вещи, которые необходимо учитывать, и я даже не думаю, что этокак работает новый конструктор функций, но если вы действительно хотите пойти по этому пути (что я действительно не рекомендую), то это может быть хорошей отправной точкой для вас.