(function(){
...
})(); чтобы не засорять глобальный скоуп ненужными переменными
var width = document.documentElement.clientWidth;
var oldViewport = document.querySelector('meta[name="viewport"]');
var viewport = document.createElement('meta');
viewport.setAttribute('name', 'viewport');
viewport.setAttribute('content', 'width=' + (width <= 640 ? '640' : 'device-width'));
document.head.replaceChild(viewport, oldViewport);
ну например функция getLocationInfo внутри себя может изменить res и передать дальше в коллбек новый, измененный экземпляр.