Un objeto en JavaScript es un contenedor de propiedades, donde una propiedad tiene un nombre y un valor.
Objeto literal
const producto = {
nombre : "Monitor" ,
precio : 300,
disponible : true,
}
Pero a partir de la version ES6 de Javascript podriamos hacerlo :
const nombre = "Manuel"
const apellido = "Garcia"
const padre = {
nombre : "Jose",
edad: 58
}
const alumno = {nombre,apellido,padre}
console.log(alumno)
Acceder a los valores de un objeto
//acceder a los valores de un objeto
producto.nombre
producto['nombre']
Agregar propiedades de un objeto
producto.imagen = "imagen.jpg"
producto['imagen'] = "imagen.jpg"
Eliminar propiedades del objeto
delete producto.disponible
Destructuring de objetos
const nombre = producto.nombre //antes
const {nombre , precio} = producto //es6
Objetos dentro de objetos
producto.informacion = {
peso:'1kg',
medida : '1nm'
}
producto.informacion.fabricacion = {
pais : 'china'
}
Destructuring de objetos anidados
const { informacion : {fabricacion : {pais} } } = producto
El problema con los objetos:
Aunque este declarado como const sus propiedades se pueden modificar o eliminar.
"use strict"
Sirve para congelar un objeto y no poder modificarlo , nos va exigir cumplir buenas practicas (habilita algunos metodos)
Object.freeze(producto)
// -> no agregar modificar ni eliminar objeto
Object.seal (producto )
// -> no agregar ni eliminar , si modificar
Unir objetos
const producto = {
}
const medidas = {
}
const resultado = Object.assign(producto,medidas)
//spread Operator
const resultado2 = {...producto , ... medidas }
Funciones en objetos y acceder a sus valores
const nombre = "Juan"
const producto = {
nombre : "Monitor",
precio : 300,
mostrarInfo: function () {
console.log(`El producto es ${nombre}`)
}
}// imprimira El producto es Juan
// => la forma correcta:
const producto = {
nombre : "Monitor",
precio : 300,
mostrarInfo: function () {
console.log(`El producto es ${this.nombre}`)
}
}// imprimira El producto es Monitor
//this refiere al objeto en si mismo
producto.mostrarInfo()
Funciones constructoras (antes de ES6)
function Producto(nombre, precio ) {
this.nombre = nombre
this.precio = precio
this.disponible = true
}
const producto2 = new Producto("Monitor" , 400 )
For ...in
const automovil = {
modelo : 'Camaro',
year : 1969,
motor : '6.0'
}
for (let propiedad in automovil ){
console.log(propiedad)
console.log(`${automovil[propiedad]}`)
}
For of
for (let [llave,valor] of Object.entries(automovil)){
console.log(llave, valor )
}
Metodos sobre objetos
const producto = {
nombre : "Monitor"
precio : 300,
disponible : true
}
console.log(Object.keys(producto))
console.log(Object.values(producto))
console.log(Object.entries(producto))
Object.keys():
Object.keys devuelve un array cuyos elementos son strings correspondientes a las propiedades enumerables que se encuentran directamente en el object. El orden de las propiedades es el mismo que se proporciona al iterar manualmente sobre las propiedades del objeto.
const alumno = {
nombre : "Manuel",
apellido : "Garcia",
edad : 21,
hermanos : ["Juan","Maria","Pepe"],
padre: {
nombre:"Jose",
edad:58
}
}
console.log(Object.keys(alumno))
Object.values():
El método Object.values() devuelve un array con los valores correspondientes a las propiedades enumerables de un objeto
const object1 = {
a: 'somestring',
b: 42,
c: false
};
console.log(Object.values(object1));
// expected output: Array ["somestring", 42, false]
Object.assign():
El método se utiliza para copiar los valores de todas las propiedades propias enumerables de uno o más objetos de origen a un objeto de destino. Se devolverá el objeto de destino.
Úselo para asignar valores a un objeto existente:
let user = {
firstName: "John"
};
Object.assign(user, {lastName: "Doe", age:39});
console.log(user); // Logs: {firstName: "John", lastName: "Doe", age: 39}
Top comments (0)