Как вариант:
function change(oldFileName, fileName) {
// fileName, oldFileName
var scripts = document.getElementsByTagName('script');
for (var i = scripts.length; i--;) {
if (scripts[i] && scripts[i].getAttribute('src')!=null && scripts[i].getAttribute('src').indexOf(oldFileName)!=-1){
console.log('found!');
var newScript = document.createElement('script');
newScript.setAttribute("type","text/javascript");
newScript.setAttribute("src", fileName);
scripts[i].parentNode.replaceChild(newScript, scripts[i]);
}
}
}
По сути, новый файл просто перекроет старый, как если бы написать в html
<script type="text/javascript" src="/old.js"></script>
<script type="text/javascript" src="/new.js"></script>
Т.е.
— функции, присутствующие и в новом и в старом файлах, будут работать по-новому.
— функции, присутствующие только в старом, останутся
— функции, присутствующие только в новом, добавятся