SlideShare una empresa de Scribd logo
JavaScript 
Objetos
Objetos 
Un objeto es una colección de nombre/valor. 
Es un tipo de datos compuesto. 
Difiere de los tipos de datos primitivos: String, 
number, boolean. 
Junto con Arrays constituyen los 2 tipos de datos 
más importantes en JavaScript.
Objetos 
Tipo de dato compuesto que almacena múltiples 
valores en una única unidad y que nos permite 
accederla por nombre para extraer o 
almacenar datos.
Crear Objetos 
• Literalmente: lista de pares ‘nombre’:’valor’ 
separados por comas y delimitados por llaves {} 
– var empty = {}; 
– var coordenada = { x:0, y:0}; 
– var circulo = { x:punto.x, y:punto.y, radio:2 }; 
– var profesor = { 
‘nombre’ : ‘Daniel’, 
‘cursos’: arreglo_cursos, 
‘email’: ‘dgrippo@gmail.com’ 
};
Crear Objetos 
• Operador new 
El operador new crea tipo de objetos especiales. 
var fecha = new Date(); 
var arreglo = new Array(); 
var regexp = new RegExp(“javascript”,”i”); 
var rectan = new Rectangulo(20,40);
Propiedades 
• Para acceder a los pares de ‘nombre’:’valor’ 
de los Objetos se utiliza el operador punto . 
objeto_nombre.valor_nombre; 
objeto_nombre = propiedad
Propiedades 
var libro = {}; 
libro.titulo = ‘El Quijote de La Mancha’; 
libro.autor = ‘Miguel de Cervantes Saavedra’; 
libro.paginas = 1096; 
libro.capitulos = new Array(); 
libro.capitulos[0] = new Object(); 
libro.capitulos[0].titulo = ‘Que trata de la….’; 
libro.capitulos[0].paginas = 5;
Propiedades 
• var para declarar el objeto 
• Propiedades solo con el nombre 
• new propiedades objetos 
• var no se usa en las propiedades 
• Se pueden agregar nuevas propiedades en todo 
momento. 
• Se pueden eliminar propiedades en todo momento.
Propiedades 
• Enumerar/listar propiedades de un objeto: 
function DisplayPropertiesName(obj) { 
for (var name in obj) { 
console.log(‘obj.’ + name); 
} 
}
Propiedades 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset= “utf-8”</meta> 
<title>Objetos</title> 
<script language="javascript"> 
var libro = {}; 
libro.titulo = 'El Quijote de La Mancha'; 
libro.autor = 'Miguel de Cervantes Saavedra'; 
libro.paginas = 1096; 
libro.capitulos = new Array(); 
libro.capitulos[0] = new Object(); 
libro.capitulos[0].titulo = 'Que trata de la...'; 
libro.capitulos[0].paginas = 5; 
function DisplayPropertiesName() { 
for (var name in libro) { 
console.log('obj.' + name); 
} 
} 
</script> 
</head> 
<body onload="DisplayPropertiesName()"> 
</body> 
</html>
Propiedades 
• Chequear si existe una propiedad: 
if (“x” in objeto) … 
objeto.x !== undefined 
Nota: “x” literal x
Propiedades 
• Eliminar una propiedad de un objeto: 
delete libro.paginas;
Objetos: Arreglos Asociativos 
En lenguales fuertemente tipados (C/C++, Java), 
los objetos tienen un número fijo de 
propiedades cuyos nombres son definidos 
cuando se programa. 
profesor.nombre; 
profesor.curso; 
Nombre y curso deben estar definidas en el 
programa literalmente.
Objetos: Arreglos Asociativos 
• Para acceder a las propiedades de un objeto 
se utiliza el operador punto: 
– objeto.propiedad // identificador 
• O puedo utilizarse el operador [] como en 
arreglos: 
– objeto[‘propiedad’] // string 
Ambas expresiones son equivalentes.
Objetos: Arreglos Asociativos 
• El operador “.” accede a una propiedad del 
objeto cuyo nombre es un identificador. 
• Los identificadores son literales tipeados en 
un programa JS. 
• No son variables de un tipo de datos en JS. 
• Los literales deben conocerse de antemano.
Objetos: Arreglos Asociativos 
• El operador “[]” accede a una propiedad de un 
arreglo que esta expresada como una cadena. 
• La cadena es una variable tipo string. Un tipo 
de datos en JS. 
• Puede manipularse perfectamente en un 
programa JS. 
• Puede cambiarse dinámicamente en la 
ejecución del programa JS:
Objetos: Arreglos Asociativos 
JavaScript no es fuertemente tipado y por lo 
tanto no se requiere que las propiedades de 
un objeto estén definidas de antemano, uno 
puede crearlas/definirlas en runtime, o sea, 
mientras se ejecuta el script. 
Cómo? Utilizando la notación de Objetos 
como Arreglos Asociativos
Objetos: Arreglos Asociativos 
Conclusión: 
puedo definir dinámicamente propiedades para 
los objetos si utilizo el operador “[]”.
Objetos: Arreglos Asociativos 
var nombre_accion = leer_nombre_accion(); 
var cant_accion = leer_cant_accion(); 
mis_acciones[nombre_accion] = cant_accion; 
var valores = 0; 
for (accion in mis_acciones) { 
valores += valor_accion(accion) * mis_acciones[accion]; 
}
Class: Object 
• Los objetos JS heredan de la Clase Object. 
• RegExp y Date definen sus propios métodos y 
propiedades. 
• Universalmente, todos soportan las 
propiedades y métodos de Object.
Constructor 
• Propiedad 
• Todo objeto JS tiene un constructor. 
• Función que crea al objeto. 
var d = new Date(); 
d.constructor == Date; // true
Constructor 
• La propiedad constructor de un objeto ayuda 
a determinar el tipo de objeto. 
if (( typeof o == “object”) && ( o.constructor == Date)) 
if (( typeof o == “object”) && ( o instaceof Date))
Clases, Constructores, Prototipos 
• Definiendo Clases propias: 
function Rectangulo(w, h) { 
this.ancho = w; 
this.alto = h; 
} 
rect1 = new Rectangulo(10,20); // rect1 = {width:10, height:20} 
- rect1 es un objeto de clase Rectangulo. 
- function Rectangulo es el constructor . 
- Las funciones constructor no devuelven un valor.
Clases, Constructores, Prototipos 
• this hace referencia al objeto en sí mismo, al 
objeto actual.

Más contenido relacionado

La actualidad más candente

Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
Vane Borjas
 
Programación C++
Programación C++Programación C++
Programación C++
Juan Islas
 
Grafos
GrafosGrafos
Vectores y Matrices
Vectores y MatricesVectores y Matrices
Vectores y Matrices
Carlos Dechtiar
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
Avocats & Associés
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
Tensor
 
jQuery
jQueryjQuery
jQuery
Jay Poojara
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
eccutpl
 
CSS - CSS3
CSS - CSS3CSS - CSS3
javascript objects
javascript objectsjavascript objects
javascript objects
Vijay Kalyan
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
NANO-06
 
DOM HTML Javascript
DOM HTML JavascriptDOM HTML Javascript
DOM HTML Javascript
Efrain Herrera Jimenez
 
Dominio de base de datos
Dominio de base de datosDominio de base de datos
Dominio de base de datos
Wilmer Yacelga XD
 
1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptx1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptx
Fernando Solis
 
Haskell study 12
Haskell study 12Haskell study 12
Haskell study 12
Nam Hyeonuk
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
letty20151998
 
Introducción a XML Schema
Introducción a XML SchemaIntroducción a XML Schema
Introducción a XML Schema
Jose Emilio Labra Gayo
 

La actualidad más candente (20)

Estructuras en C
Estructuras en CEstructuras en C
Estructuras en C
 
Programación C++
Programación C++Programación C++
Programación C++
 
Grafos
GrafosGrafos
Grafos
 
Practicas prolog2011 listas
Practicas prolog2011 listasPracticas prolog2011 listas
Practicas prolog2011 listas
 
Vectores y Matrices
Vectores y MatricesVectores y Matrices
Vectores y Matrices
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Arreglos Java
Arreglos JavaArreglos Java
Arreglos Java
 
Quick Sort
Quick SortQuick Sort
Quick Sort
 
Cadenas y funciones de cadena
Cadenas y funciones de cadenaCadenas y funciones de cadena
Cadenas y funciones de cadena
 
jQuery
jQueryjQuery
jQuery
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
CSS - CSS3
CSS - CSS3CSS - CSS3
CSS - CSS3
 
javascript objects
javascript objectsjavascript objects
javascript objects
 
Listas como estructura de datos..
Listas como estructura de datos..Listas como estructura de datos..
Listas como estructura de datos..
 
DOM HTML Javascript
DOM HTML JavascriptDOM HTML Javascript
DOM HTML Javascript
 
Dominio de base de datos
Dominio de base de datosDominio de base de datos
Dominio de base de datos
 
1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptx1.1.5 Gestion de Memoria estática con TDA.pptx
1.1.5 Gestion de Memoria estática con TDA.pptx
 
Haskell study 12
Haskell study 12Haskell study 12
Haskell study 12
 
Vectores y matrices
Vectores y matricesVectores y matrices
Vectores y matrices
 
Introducción a XML Schema
Introducción a XML SchemaIntroducción a XML Schema
Introducción a XML Schema
 

Similar a Javascript objetos

Javascript
JavascriptJavascript
Javascript
Maria Garcia
 
Manejo de los objetos en JavaScript para la programación orientada a objetos
Manejo de los objetos en JavaScript para la programación orientada a objetosManejo de los objetos en JavaScript para la programación orientada a objetos
Manejo de los objetos en JavaScript para la programación orientada a objetos
Francisco Javier Arce Anguiano
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
Danae Aguilar Guzmán
 
Clase 6 objetos de javaScript
Clase 6 objetos de javaScriptClase 6 objetos de javaScript
Clase 6 objetos de javaScript
José Ricardo Tillero Giménez
 
Javascript - 2014
Javascript - 2014Javascript - 2014
Javascript - 2014
Carlos Alonso Pérez
 
Javascript
JavascriptJavascript
Java script estructuras_datos
Java script estructuras_datosJava script estructuras_datos
Java script estructuras_datos
jcremiro
 
Json JavaScript Object Notation
Json JavaScript Object NotationJson JavaScript Object Notation
Json JavaScript Object Notation
DarkKerberos
 
Javascript continuación
Javascript   continuaciónJavascript   continuación
Javascript continuación
Daniel Grippo
 
clase modelo.pptx
clase modelo.pptxclase modelo.pptx
clase modelo.pptx
institutoagpperu
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
Danae Aguilar Guzmán
 
Clases y Objetos para programar introducción para programar
Clases y Objetos para programar introducción para programarClases y Objetos para programar introducción para programar
Clases y Objetos para programar introducción para programar
SandovalLisandro
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
BelenMonse
 
Poo Java
Poo JavaPoo Java
Poo Java
eccutpl
 
OOP-JS pjs
OOP-JS pjsOOP-JS pjs
OOP-JS pjsJona Val
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjsJona Val
 
Programar java
Programar javaProgramar java
Programar java
vloor
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
José Ricardo Tillero Giménez
 
Métodos constructores, método toString()
Métodos constructores, método toString()Métodos constructores, método toString()
Métodos constructores, método toString()
Pablo Macon
 
Programar java
Programar javaProgramar java
Programar java
vloor
 

Similar a Javascript objetos (20)

Javascript
JavascriptJavascript
Javascript
 
Manejo de los objetos en JavaScript para la programación orientada a objetos
Manejo de los objetos en JavaScript para la programación orientada a objetosManejo de los objetos en JavaScript para la programación orientada a objetos
Manejo de los objetos en JavaScript para la programación orientada a objetos
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 
Clase 6 objetos de javaScript
Clase 6 objetos de javaScriptClase 6 objetos de javaScript
Clase 6 objetos de javaScript
 
Javascript - 2014
Javascript - 2014Javascript - 2014
Javascript - 2014
 
Javascript
JavascriptJavascript
Javascript
 
Java script estructuras_datos
Java script estructuras_datosJava script estructuras_datos
Java script estructuras_datos
 
Json JavaScript Object Notation
Json JavaScript Object NotationJson JavaScript Object Notation
Json JavaScript Object Notation
 
Javascript continuación
Javascript   continuaciónJavascript   continuación
Javascript continuación
 
clase modelo.pptx
clase modelo.pptxclase modelo.pptx
clase modelo.pptx
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
 
Clases y Objetos para programar introducción para programar
Clases y Objetos para programar introducción para programarClases y Objetos para programar introducción para programar
Clases y Objetos para programar introducción para programar
 
Tema 4 clases_y_objetos
Tema 4 clases_y_objetosTema 4 clases_y_objetos
Tema 4 clases_y_objetos
 
Poo Java
Poo JavaPoo Java
Poo Java
 
OOP-JS pjs
OOP-JS pjsOOP-JS pjs
OOP-JS pjs
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjs
 
Programar java
Programar javaProgramar java
Programar java
 
Clase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScriptClase 7 objetos globales de javaScript
Clase 7 objetos globales de javaScript
 
Métodos constructores, método toString()
Métodos constructores, método toString()Métodos constructores, método toString()
Métodos constructores, método toString()
 
Programar java
Programar javaProgramar java
Programar java
 

Último

Oración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docxOración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docx
LuisAlbertoCordovaBa
 
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASAEXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
Javier Lasa
 
Diapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptxDiapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptx
erick502105
 
Los derechos de autor y Ética Profesional
Los derechos de autor y Ética ProfesionalLos derechos de autor y Ética Profesional
Los derechos de autor y Ética Profesional
bgonzalezm20
 
caso clinico de trastorno de personalidad obsesivo- compulsivo.pdf
caso clinico de trastorno de personalidad obsesivo- compulsivo.pdfcaso clinico de trastorno de personalidad obsesivo- compulsivo.pdf
caso clinico de trastorno de personalidad obsesivo- compulsivo.pdf
RoxanaJuarezTello
 
Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_  conceptos b-sicos de programaci-n.pdfEstructuras b-sicas_  conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
edepjuanorozco
 
WordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPressWordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPress
Fernando Tellado
 
10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf
10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf
10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf
XxsmalXxYT
 
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
AlexanderCR12
 
ayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupalayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupal
jesusmedina766305
 
Clases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicosClases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicos
mcavero2019
 
Presentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivoPresentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivo
juanlemus11122
 
derecho penal busqueda de pruebas en el derecho penal peruano latinoamericano
derecho penal busqueda de pruebas en el derecho penal peruano latinoamericanoderecho penal busqueda de pruebas en el derecho penal peruano latinoamericano
derecho penal busqueda de pruebas en el derecho penal peruano latinoamericano
edwinchiri2
 
Biografía Eugenio Díaz Castro su vida y su libros
Biografía Eugenio  Díaz Castro su vida y su librosBiografía Eugenio  Díaz Castro su vida y su libros
Biografía Eugenio Díaz Castro su vida y su libros
jhannimejia
 
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente CruzattSEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
vicenteariana54
 
blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....
JosvilAngel
 

Último (16)

Oración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docxOración a Pomba Gira María Padilha .docx
Oración a Pomba Gira María Padilha .docx
 
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASAEXPERIENCIA PROYECTOS STARTUP JAVIER LASA
EXPERIENCIA PROYECTOS STARTUP JAVIER LASA
 
Diapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptxDiapositiva Herramientas Web, Tema Web 3.0.pptx
Diapositiva Herramientas Web, Tema Web 3.0.pptx
 
Los derechos de autor y Ética Profesional
Los derechos de autor y Ética ProfesionalLos derechos de autor y Ética Profesional
Los derechos de autor y Ética Profesional
 
caso clinico de trastorno de personalidad obsesivo- compulsivo.pdf
caso clinico de trastorno de personalidad obsesivo- compulsivo.pdfcaso clinico de trastorno de personalidad obsesivo- compulsivo.pdf
caso clinico de trastorno de personalidad obsesivo- compulsivo.pdf
 
Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_  conceptos b-sicos de programaci-n.pdfEstructuras b-sicas_  conceptos b-sicos de programaci-n.pdf
Estructuras b-sicas_ conceptos b-sicos de programaci-n.pdf
 
WordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPressWordPress training basics - básicos de cómo enseñar WordPress
WordPress training basics - básicos de cómo enseñar WordPress
 
10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf
10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf
10. Táctica y Estrategia en Fútbol autor Oscar Milton Rivas (1).pdf
 
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
5 CRITERIOS PARA EL DISEÑO DE DIAGRAMAS DE FLUJO.pptx
 
ayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupalayuda en egresos exposición aps 1 grupal
ayuda en egresos exposición aps 1 grupal
 
Clases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicosClases de Informática primaria para niños de colegios católicos
Clases de Informática primaria para niños de colegios católicos
 
Presentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivoPresentación Arduino, proyecto colectivo
Presentación Arduino, proyecto colectivo
 
derecho penal busqueda de pruebas en el derecho penal peruano latinoamericano
derecho penal busqueda de pruebas en el derecho penal peruano latinoamericanoderecho penal busqueda de pruebas en el derecho penal peruano latinoamericano
derecho penal busqueda de pruebas en el derecho penal peruano latinoamericano
 
Biografía Eugenio Díaz Castro su vida y su libros
Biografía Eugenio  Díaz Castro su vida y su librosBiografía Eugenio  Díaz Castro su vida y su libros
Biografía Eugenio Díaz Castro su vida y su libros
 
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente CruzattSEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
SEGURIDAD INFORMATICA- Ariana Vicente Cruzatt
 
blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....blog.pdf de coceptos de personalidad....
blog.pdf de coceptos de personalidad....
 

Javascript objetos

  • 2. Objetos Un objeto es una colección de nombre/valor. Es un tipo de datos compuesto. Difiere de los tipos de datos primitivos: String, number, boolean. Junto con Arrays constituyen los 2 tipos de datos más importantes en JavaScript.
  • 3. Objetos Tipo de dato compuesto que almacena múltiples valores en una única unidad y que nos permite accederla por nombre para extraer o almacenar datos.
  • 4. Crear Objetos • Literalmente: lista de pares ‘nombre’:’valor’ separados por comas y delimitados por llaves {} – var empty = {}; – var coordenada = { x:0, y:0}; – var circulo = { x:punto.x, y:punto.y, radio:2 }; – var profesor = { ‘nombre’ : ‘Daniel’, ‘cursos’: arreglo_cursos, ‘email’: ‘dgrippo@gmail.com’ };
  • 5. Crear Objetos • Operador new El operador new crea tipo de objetos especiales. var fecha = new Date(); var arreglo = new Array(); var regexp = new RegExp(“javascript”,”i”); var rectan = new Rectangulo(20,40);
  • 6. Propiedades • Para acceder a los pares de ‘nombre’:’valor’ de los Objetos se utiliza el operador punto . objeto_nombre.valor_nombre; objeto_nombre = propiedad
  • 7. Propiedades var libro = {}; libro.titulo = ‘El Quijote de La Mancha’; libro.autor = ‘Miguel de Cervantes Saavedra’; libro.paginas = 1096; libro.capitulos = new Array(); libro.capitulos[0] = new Object(); libro.capitulos[0].titulo = ‘Que trata de la….’; libro.capitulos[0].paginas = 5;
  • 8. Propiedades • var para declarar el objeto • Propiedades solo con el nombre • new propiedades objetos • var no se usa en las propiedades • Se pueden agregar nuevas propiedades en todo momento. • Se pueden eliminar propiedades en todo momento.
  • 9. Propiedades • Enumerar/listar propiedades de un objeto: function DisplayPropertiesName(obj) { for (var name in obj) { console.log(‘obj.’ + name); } }
  • 10. Propiedades <!DOCTYPE html> <html> <head> <meta charset= “utf-8”</meta> <title>Objetos</title> <script language="javascript"> var libro = {}; libro.titulo = 'El Quijote de La Mancha'; libro.autor = 'Miguel de Cervantes Saavedra'; libro.paginas = 1096; libro.capitulos = new Array(); libro.capitulos[0] = new Object(); libro.capitulos[0].titulo = 'Que trata de la...'; libro.capitulos[0].paginas = 5; function DisplayPropertiesName() { for (var name in libro) { console.log('obj.' + name); } } </script> </head> <body onload="DisplayPropertiesName()"> </body> </html>
  • 11. Propiedades • Chequear si existe una propiedad: if (“x” in objeto) … objeto.x !== undefined Nota: “x” literal x
  • 12. Propiedades • Eliminar una propiedad de un objeto: delete libro.paginas;
  • 13. Objetos: Arreglos Asociativos En lenguales fuertemente tipados (C/C++, Java), los objetos tienen un número fijo de propiedades cuyos nombres son definidos cuando se programa. profesor.nombre; profesor.curso; Nombre y curso deben estar definidas en el programa literalmente.
  • 14. Objetos: Arreglos Asociativos • Para acceder a las propiedades de un objeto se utiliza el operador punto: – objeto.propiedad // identificador • O puedo utilizarse el operador [] como en arreglos: – objeto[‘propiedad’] // string Ambas expresiones son equivalentes.
  • 15. Objetos: Arreglos Asociativos • El operador “.” accede a una propiedad del objeto cuyo nombre es un identificador. • Los identificadores son literales tipeados en un programa JS. • No son variables de un tipo de datos en JS. • Los literales deben conocerse de antemano.
  • 16. Objetos: Arreglos Asociativos • El operador “[]” accede a una propiedad de un arreglo que esta expresada como una cadena. • La cadena es una variable tipo string. Un tipo de datos en JS. • Puede manipularse perfectamente en un programa JS. • Puede cambiarse dinámicamente en la ejecución del programa JS:
  • 17. Objetos: Arreglos Asociativos JavaScript no es fuertemente tipado y por lo tanto no se requiere que las propiedades de un objeto estén definidas de antemano, uno puede crearlas/definirlas en runtime, o sea, mientras se ejecuta el script. Cómo? Utilizando la notación de Objetos como Arreglos Asociativos
  • 18. Objetos: Arreglos Asociativos Conclusión: puedo definir dinámicamente propiedades para los objetos si utilizo el operador “[]”.
  • 19. Objetos: Arreglos Asociativos var nombre_accion = leer_nombre_accion(); var cant_accion = leer_cant_accion(); mis_acciones[nombre_accion] = cant_accion; var valores = 0; for (accion in mis_acciones) { valores += valor_accion(accion) * mis_acciones[accion]; }
  • 20. Class: Object • Los objetos JS heredan de la Clase Object. • RegExp y Date definen sus propios métodos y propiedades. • Universalmente, todos soportan las propiedades y métodos de Object.
  • 21. Constructor • Propiedad • Todo objeto JS tiene un constructor. • Función que crea al objeto. var d = new Date(); d.constructor == Date; // true
  • 22. Constructor • La propiedad constructor de un objeto ayuda a determinar el tipo de objeto. if (( typeof o == “object”) && ( o.constructor == Date)) if (( typeof o == “object”) && ( o instaceof Date))
  • 23. Clases, Constructores, Prototipos • Definiendo Clases propias: function Rectangulo(w, h) { this.ancho = w; this.alto = h; } rect1 = new Rectangulo(10,20); // rect1 = {width:10, height:20} - rect1 es un objeto de clase Rectangulo. - function Rectangulo es el constructor . - Las funciones constructor no devuelven un valor.
  • 24. Clases, Constructores, Prototipos • this hace referencia al objeto en sí mismo, al objeto actual.