Bruno R
Un objeto es una variedad de datos y/o funcionalidades ( que generalmente se expresan en variables y funciones que se denominan propiedades y metodos cuando estan dentro de un objeto).
Sintaxis β
const objectName = { Name1: String,//estas serian propiedades del objeto Name2: ["cosas" , "mas cosas"], //es una propiedad pero con varios valores porque es un array y se llama a sus valores como cualquier array Name3: Number, nameFunction1: function() {alert("algo")},//estos serian metodos del objeto nameFunction2: function() {prompt} };
Los miembros de un objeto pueden ser practicamente cualquier cosa, strings, numbers, arrays, functions, los primeros tres elementos son elementos de datos y se denominan propiedades del objeto, los ultimos elementos son funciones y permiten manipular esos datos son sus metodos. La forma de llamar estos datos seria asi β
objectName.Name1 //output un String objectName.Name2[0] //output "cosas" objectName.Name3 //output un Number objectName.nameFunction1() //output ejecucion de la funcion (metodo)
Este tipo de objetos es muy util cuando enviamos formularios al servidor, donde es mas simple enviar un solo elemento que uno por cada input rellenado, ademas es mas legible que arrays, porque cuenta con nombres para sus miembros.
Para acceder a los valos de los elementos de un objeto, primer se debe colocar el nombre del objeto seguido de un punto . y luego el nombre del elemento al que deseamos acceder (ya sea propiedad o metodo). Las tres formas de notacion para acceder a la info de un miembro del objeto β
person.age //propiedad person.interests[1] // propiedad de un array person.bio() // metodo
Se puede incluso hacer que un miembro de objeto sea otro objeto β
name: ['Bob', 'Smith'], //array name : { //object first: 'Bob', last: 'Smith' },
A estos miembros se los puede invocar utilizando la notacion de punto β person.name.first o person.name.last, con person estamos invocando al objeto, con name estamos ingresando a un mimebto del objeto, y como name es un objeto podemos ingresar a los elementos de este: first y last.
Existen otra forma de acceder a los datos del objeto, y esta es la notacion de corchetes donde β
person.age person.name.first
person['age'] person['name']['first']
Tambien podemos ingresar un valor a un miembro de objeto u actualizar un valor preexistentes β
person.age = 45; person['name']['last'] = 'Cratchit';
La configuracion de miembros de objeto no se limita solo a generar valores u actualizarlos sino que tambien se pueden crear miembros completamente nuevos en el objeto β
person['eyes'] = 'hazel'; person.farewell = function() { alert("Bye everybody!"); }
Una ventaja importante que tiene la notacion de corchetes, es la posibilidad de colocar variables (valores dinamicos) para los miembros del objeto β
function newPnMember ( myDataName , myDataValue){ person[myDataName] = myDataValue; //el nombre del miembro es un parametro de la funcion, solo se puede lograr con la notacion de corchetes. }
this es una palabra clave que hace referencia al objeto actual en el que se esta escribiendo el codigo β
const person1 = { name: 'Chris', greeting: function() { alert('Hi! I\'m ' + this.name + '.'); } //aca el resultado es el saludo a 'Chris' } const person2 = { name: 'Deepti', greeting: function() { alert('Hi! I\'m ' + this.name + '.'); } //aca el resultado es el saludo a 'Deepti' }
Las APIs integradas del navegador o los objetos propios del lenguaje JS, estan construidos utilizando el mismo tipo de estructura.
Cuando utilzamos metodos de string β
myString.split(',');
Esto ocurre con todas las APIs integradas u objetos integrados utilizados de JS β Math, Array, etc.
const myDiv = document.createElement('div'); const myVideo = document.querySelector('video');