2

Приватные переменные через немедленно вызываемую функцию

var getUserUrl = function() {
    var UserId = 666; // Переменная доступна только в теле функции
  
    return function() {
        console.log(UserId); // Удачно выведет айдищник пользователя
        return 'http://domain.com/u'+UserId;
    }
}() // Функция будет вызывана сразу после определения, и вернет в переменную новую функцию.

getUserId();
// вернет http://domain.com/u666
// при этом мы не сможем изменить переменную UserId, из вне, так как она является локальной (приватной) переменной.