Os obxectos son unha estrutura de datos que se usan no idioma, de feito, considero que é o máis importante e que moitas veces non entendemos en absoluto.
Sistécticamente un obxecto en JavaScript é un grupo agrupado entre teclas e valores clave:
let nombreDelObjeto = {clave_1: valor_1,clave_2: valor:2,clave_3: valor:3,clave_n: valor:n};
Que é? un literal?
A definición de aludir literal a algo textual, por exemplo, se declaramos unha variable do seguinte xeito:
let colorDelSol = "Amarillo";
podemos dicir que a variable colorDelSol
ten unha cadea literal asignada desde que se asigna o valor textual
exactamente o mesmo ocorre cos obxectos literales, Por exemplo:
let perro = { nombre:"Scott", color:"Cafe", edad: 5, macho: true};
onde:
- O nome do obxecto é
perro
e as súas teclas / valores descríbense na seguinte táboa:
tecla |
valor |
tipo de datos |
Nome |
Scott |
cadea |
cor |
cafe |
cadea |
Age |
5 |
Int |
Male |
true |
boleano |
Os tipos de datos que un obxecto pode almacenar pode ser cordas, enteiros, billetes, incluídos outros obxectos.
Os valores de acceso dun obxecto
Hai 2 xeitos simples de poder acceder aos valores dun obxecto:
Notación de puntos
é escribir o nome do obxecto seguido dun punto e o nome da propiedade á que desexa acceder: objeto.clave
let perro = { nombre:"Scott", color:"Cafe", edad: 5, macho: true};console.info(perro.nombre); // Scottconsole.info(perro.edad); // 5
Notación de soporte / teclas cadradas ou corchetes
Consiste en escribir o nome de O obxecto que pretende entre parénteses a clave á que desexa acceder: objeto
let perro = { nombre:"Scott", color:"Cafe", edad: 5, macho: true};console.info(perro); // Scottconsole.info(perro); // 5
As dúas formas devolven os mesmos resultados, polo tanto, poden considerarse homónimos, pero na práctica é habitual usar a notación de punto máis.
Métodos nun obxecto
Un obxecto non só se limita á agrupación de chaves de valores, tamén é posible incorporar métodos do seguinte xeito:
Por razóns de alcance de variables, para acceder aos campos dun obxecto Dentro dun método, a palabra reservada debería usarse.
Inserir novos campos a un obxecto
Para engadir novos campos ao obxecto só menciona o nome do obxecto seguido do novo propiedade e novo valor para inserir: perro.tamaño = "Grande";
let perro = { nombre:"Scott", color:"Cafe", edad: 5, macho: true, ladrar: function(){ return(`${this.nombre} puede ladrar`) },};perro.tamaño = "Grande";console.log(perro);/* { color: "Cafe", edad: 5, ladrar: function(){ return(`${this.nombre} puede ladrar`) }, macho: true, nombre: "Scott", tamaño: "Grande"}*/
con eles poderemos engadir un novo valor ao obxecto.
Os campos de actualización do obxecto
simplemente escribir unha propiedade existente, do seguinte xeito:
let perro = { nombre:"Scott", color:"Cafe", edad: 5, macho: true, ladrar: function(){ return(`${this.nombre} puede ladrar`) },};perro.edad = 8;console.log(perro);/* { color: "Cafe", edad: 8, ladrar: function(){ return(`${this.nombre} puede ladrar`) }, macho: true, nombre: "Scott"}*/
Borrado de campo
Para eliminar unha propiedade dun obxecto, a palabra reservada como segue:
delete nombre_del_objeto.clave;
Por exemplo:
let perro = { nombre:"Scott", color:"Cafe", edad: 5, macho: true, ladrar: function(){ return(`${this.nombre} puede ladrar`) }};delete perro.color;console.log(perro);/*let perro = { nombre:"Scott", color:"Cafe", edad: 5, macho: true, ladrar: function(){ return(`${this.nombre} puede ladrar`) },};*/
A saída dos exemplos desta publicación realízase coa ferramenta JSBIN, por iso o formato é como isto.
Conclusións 📎
- Un obxecto é a estrutura de datos máis utilizada en JavaScript, composta por pares ordenados e agrupados en chaves e valores.
- chámase obxecto literal para o obxecto cuxas propiedades son declaradas textualmente no código.
- Os obxectos poden almacenar métodos dentro.
- Para acceder ás propiedades dun obxecto dentro dun método é necesario usar a palabra reservada
this
por Alcance das variables.
- A diferenza doutros idiomas de programación, as propiedades pódense engadir ou eliminar dun xeito moi barato pero sinxelo pero sinxelo.