Ámbito

 

// Otro ejemplo: Función como objeto separado con un atributo + un método

function enteroUnico () {
     var contador = 0;
     function contar () { return contador++; };
     return contar;
};
    // asignamos el objeto función contar 
var entero_unico = enteroUnico();

    // enteroUnico() se puede instanciar 
    // otra vez creando otro contador único 
var otro_entero_unico = enteroUnico();



// definición equivalente a la anterior
// sin dar nombres a las funciones.

var entero_unico = function () {
     var contador = 0;
     return function () { return contador++; };
} ();