-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathglobal.js
More file actions
16 lines (16 loc) · 1.11 KB
/
Copy pathglobal.js
File metadata and controls
16 lines (16 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//Variables privadas con clousures
const person = () => {
let nombre = "sin nombre"; // Se declara la variable con let justo en la raíz de la función para que pueda ser vista en todos los niveles interiores.
return { // Se retorna un "objeto" con 2 "metodos" (funciones)
obtenerNombre: () => { // método 1, que no recibe parámetros y sólo devuelve la variable nombre.
return nombre;
},
definirNombre: (nuevoNombre) => { // método 2, que recibe un parámetro y lo asigna a la propiedad nombre definida en la raíz de este objeto.
nombre = nuevoNombre;
}
};
};
const mipersona = person(); // Define la constante mipersona y le asigna el objeto (la función) persona, recibiendo asi los 2 métodos (obtenerNombre y definirNombre).
console.log(mipersona.obtenerNombre()); // Te dará el valor por omisión que en este caso sería sin nombre.
mipersona.definirNombre('Jonny'); // Asignas un nuevo nombre por medio del método definirNombre().
console.log(mipersona.obtenerNombre()); // Te dará el nuevo valor que asignaste la línea anterior.