// un objeto cualquiera
const user = {
username: 'juan.perez',
password: 'loremipsumpwd123',
lovesJavascript: true,
favoriteNumber: 42,
"touched tree": "Touched a tree", //props con espacios usan ""
decirHola: function() {
console.log('Hola a todo el mundo!');
},
decirHolaUser: function() {
console.log( this.username + ' manda saludos!');
}
};
// acceder o asignar propiedades
user.lovesJavascript; // true
user.username; // juan.perez
user['lovesJavascript']; // true
user['username']; // juan.perez
user[passString]; // loremipsumpwd123
// elliminar propiedades
delete user.eliminarEstaPropiedad;
user.password = null
user.password = undefined
// operador binario
console.log("eliminarEstaPropiedad" in user) // -> false
console.log("favoriteNumber" in user) // -> true
// correr un metodo del objeto
nuevoObjeto.decirHola(); //Hola a todo el mundo!
nuevoObjeto.decirHolaUser(); //juan.perez manda saludos!
/* this hace referencia al objeto donde es llamado
va y busca la referencia del objeto por si existe en el root y lo retorna*/
// aqui llama a username dentro de el objeto usuario
let usuario = {
username: "juan.perez",
decirHolaUser: function () { // 'juan.perez Amanda saludos!'
console.log(this.username + " manda saludos!");
},
newSintax() { //"Esta sintaxis para function si maneja this: juan.perez"
console.log("Esta sintaxis para function si maneja this: " + this.username);
},
notThis: () => //'arrow functions no majenan this: undefined'
console.log("arrow functions no majenan this: " + this.username),
exists: function () { // returns all the object that contains this
return this;
},
that: this, // returns {} that is not this
}
usuario.a = 37 // aqui crea una posicion dentro de usuario
console.log(usuario.exists())
//{
// username: 'juan.perez',
// decirHolaUser: ƒ decirHolaUser(),
// newSintax: ƒ newSintax(),
// notThis: ƒ notThis(),
// exists: ƒ exists(),
// that: {},
// a: 37
//}
Los objetos no son iterables por defecto. Tienen que ser apoyados por un metodo externo que se los permita.
// toma el objeto, itera sobre cada posicion, y retorna el key cada vez
for (let clave in usuario){
console.log(clave); // nos regresa la clave cada vez
console.log(usuario[clave]); // obtiene el contenido buscando con la clave
}
// Object.assign escribe un objeto sobre otro
let objectA = {a: 1, b: 2};
Object.assign(objectA, {b: 3, c: 4});
console.log(objectA);
// → {a: 1, b: 3, c: 4}
Los objetos son posiciones en memoria que guardian valores. Por lo que un objeto solo es igual a otro si estan apuntando a la misma posicion en memoria.
let object1 = {value: 10};
let object2 = object1;
let object3 = {value: 10};
console.log(object1 == object2); // → true
console.log(object1 == object3); // → false