DEV Community

Cover image for Objetos en Javascript
Jair
Jair

Posted on

Objetos en Javascript

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, 
}
Enter fullscreen mode Exit fullscreen mode

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) 
Enter fullscreen mode Exit fullscreen mode

Acceder a los valores de un objeto

//acceder a los valores de un objeto 
producto.nombre
producto['nombre'] 

Enter fullscreen mode Exit fullscreen mode

Agregar propiedades de un objeto

producto.imagen = "imagen.jpg" 
producto['imagen'] = "imagen.jpg"
Enter fullscreen mode Exit fullscreen mode

Eliminar propiedades del objeto

delete producto.disponible
Enter fullscreen mode Exit fullscreen mode

Destructuring de objetos

const nombre = producto.nombre //antes
const {nombre , precio} = producto //es6
Enter fullscreen mode Exit fullscreen mode

Objetos dentro de objetos

producto.informacion = {
    peso:'1kg',
    medida : '1nm'
}
producto.informacion.fabricacion = {
    pais : 'china'
}

Enter fullscreen mode Exit fullscreen mode

Destructuring de objetos anidados

const { informacion : {fabricacion : {pais} }  } = producto 
Enter fullscreen mode Exit fullscreen mode

El problema con los objetos:

Aunque este declarado como const sus propiedades se pueden modificar o eliminar.

"use strict" 
Enter fullscreen mode Exit fullscreen mode

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 
Enter fullscreen mode Exit fullscreen mode

Unir objetos

const producto = {
}
const medidas = {
} 
const resultado = Object.assign(producto,medidas)
//spread Operator
const resultado2 = {...producto , ... medidas }
Enter fullscreen mode Exit fullscreen mode

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()
Enter fullscreen mode Exit fullscreen mode

Funciones constructoras (antes de ES6)

function Producto(nombre, precio ) {
    this.nombre = nombre
    this.precio = precio  
    this.disponible = true
}
const producto2 = new Producto("Monitor" , 400 ) 
Enter fullscreen mode Exit fullscreen mode

For ...in


const automovil = {
    modelo : 'Camaro',
    year : 1969,
    motor : '6.0'
}

for (let propiedad in automovil ){
    console.log(propiedad)
    console.log(`${automovil[propiedad]}`)
}
Enter fullscreen mode Exit fullscreen mode

For of

for (let [llave,valor] of Object.entries(automovil)){
    console.log(llave, valor )
}
Enter fullscreen mode Exit fullscreen mode

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))

Enter fullscreen mode Exit fullscreen mode

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))
Enter fullscreen mode Exit fullscreen mode

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]

Enter fullscreen mode Exit fullscreen mode

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}

Enter fullscreen mode Exit fullscreen mode

Top comments (0)