Contenido del curso
Objetos literales
Los objetos literales en JavaScript son una forma de almacenar y manipular datos en el lenguaje. Un objeto literal es un conjunto de pares clave-valor que se encierran entre llaves {}. Los objetos literales pueden contener cualquier tipo de dato, desde números, strings, booleanos, hasta funciones y otros objetos.
Uno de los métodos más comunes para manipular objetos literales es Object.assign(). Este método permite copiar las propiedades de un objeto a otro. Por ejemplo:
const objeto1 = {a: 1, b: 2}; const objeto2 = {c: 3, d: 4}; // Object.assing necesita de entrada un target al cual asignarle los valores // En este ejemplo el target será un nuevo objeto vacío // Y los siguientes elementos serán las fuentes (que pueden ser varios objetos) const nuevoObjeto = Object.assign({}, objeto1, objeto2); console.log(nuevoObjeto); // Output: {a: 1, b: 2, c: 3, d: 4}
Otro método importante es Object.freeze(). Este método congela un objeto, impidiendo que sus propiedades sean modificadas. Por ejemplo:
const objeto = {a: 1, b: 2}; Object.freeze(objeto); objeto.a = 3; console.log(objeto.a); // Output: 1
Además de Object.assign y Object.freeze, otro método importante es Object.getOwnPropertyNames. Este método devuelve un array con todas las propiedades de un objeto que son de su propiedad, es decir, no heredadas. Por ejemplo:
const objeto1 = {a: 1, b: 2}; const objeto2 = Object.create(objeto1); objeto2.c = 3; console.log(Object.getOwnPropertyNames(objeto2)); // Output: ["c"]
Para iterar sobre las propiedades de un objeto, se puede utilizar un bucle for-in. Por ejemplo:
const objeto = {a: 1, b: 2, c: 3}; for (let propiedad in objeto) { console.log(propiedad); // Output: "a", "b", "c" }
Otra forma de iterar sobre las propiedades de un objeto es utilizando Object.keys() y un bucle for-of. Por ejemplo:
const objeto = {a: 1, b: 2, c: 3}; const propiedades = Object.keys(objeto); // Object.keys nos da un array con las keys del objeto for (let propiedad of propiedades) { console.log(propiedad); // Output: "a", "b", "c" }
Object.values().
Este método devuelve un array con los valores de todas las propiedades de un objeto, incluyendo las heredadas. Por ejemplo:
const objeto1 = {a: 1, b: 2}; const objeto2 = Object.create(objeto1); objeto2.c = 3; console.log(Object.values(objeto2)); // Output: [3, 1, 2]
Object.entries().
Este método devuelve un array con los pares clave-valor de todas las propiedades de un objeto, incluyendo las heredadas. Por ejemplo:
const objeto1 = {a: 1, b: 2}; const objeto2 = Object.create(objeto1); objeto2.c = 3; console.log(Object.entries(objeto2)); // Output: [["c", 3], ["a", 1], ["b", 2]]
hasOwnProperty().
Este método devuelve un booleano indicando si un objeto tiene una propiedad específica que es de su propiedad, es decir, no heredada. Por ejemplo:
const objeto1 = {a: 1, b: 2}; const objeto2 = Object.create(objeto1); objeto2.c = 3; console.log(objeto2.hasOwnProperty("c")); // Output: true console.log(objeto2.hasOwnProperty("a")); // Output: false
Todo esto y más lo puedes aprender en el Curso Básico de Programación Orientada a Objetos con JavaScript
Edward Jesús Rangel Barreto
EstudianteJose Barboza
EstudianteFrandel Corporan Rodríguez
EstudianteLuis Castro
EstudianteChristopher Armando Jiménez Valverde
EstudianteChristopher Armando Jiménez Valverde
EstudianteEl método getOwnProperties realmente se llama getOwnPropertyNames ;-)
cierto sino da un error
Uncaught TypeError: Object.getOwnProperties is not a function
gracias por avisar
Objetos literales y sus métodos:
.
Los objetos literales son una forma de crear objetos de manera rápida y sencilla. En lugar de crear un objeto usando una clase o una función constructora, podemos crear uno directamente usando llaves {} y colocando las propiedades y métodos que queremos que tenga el objeto.
.
Por ejemplo, podemos crear un objeto persona con propiedades como nombre, edad y país de origen, y métodos como hablar y caminar, de la siguiente manera:
const persona = { nombre: 'Luis', edad: 29, pais: 'México', hablar: function() { console.log(`Hola, soy ${this.nombre} y tengo ${this.edad} años.`); // 'Hola, soy Luis y tengo 29 años.' }, caminar: function() { console.log(`${this.nombre} está caminando...`); // 'Luis está caminando...' } } // Podemos acceder a las propiedades y métodos usando la notación de punto: console.log(persona.nombre); // 'Luis' persona.hablar(); // 'Hola, soy Luis y tengo 29 años.' // Además de las propiedades y métodos que hemos definido en el objeto, también podemos añadir nuevas propiedades y métodos más adelante: persona.trabajar = function() { console.log(`${this.nombre} está trabajando...`); // 'Luis está trabajando...' }
En el ejemplo de Object.values al momento de correr el código de lado de Node, y del Navegador, solo proporciona los valores de las propiedades del objeto creado, sin embargo no muestra los valores de las propiedades heredadas en el prototype. Observación para que puedan hacer la corrección.
En el ejemplo de Object.entries solo proporciona los valores de las propiedades del objeto creado, sin embargo no muestra los valores de las propiedades heredadas en el prototype. Observación para que puedan hacer la corrección.