если функция callback не задана как параметр при вызове updateLastOnlineTime, то внутри updateLastOnlineTime будет проинициализирована новой пустой функцией.
но лучше бы проверку, что callback реально является функцией, а не другим объектом, к примеру. вот как-то так:
function isFunction(fn) {
var obj= {};
return fn && obj.toString.call(fn) === '[object Function]';
}
callback = isFunction(callback) || function() {};