SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Electiva II
Clase 6
Objetos en JavaScript
Ing. José Ricardo Tillero UPTAEB
Objetos en JavaScript
Características
 Un objeto es como un array pero donde los índices los definimos nosotros.
 Para definir un objeto utilizamos las llaves { } ( object literal notation ).
 Los elementos de un objeto ( propiedades ) los separamos por comas:
> var hero = {
breed: 'Turtle',
occupation: 'Ninja'
};
 Las claves (keys, nombres de las propiedades) pueden ir entre comillas, pero no se recomienda.
 El par clave/valor (key/value) lo dividimos con 2 puntos:
> var o = {prop: 1};
> var o = {"prop": 1};
> var o = {'prop': 1};
 Cuando una propiedad contiene una función, decimos que esta propiedad es un método del objeto:
> var dog = {
name: 'Benji',
talk: function(){
alert('Woof, woof!');
}
};
Objetos en JavaScript
Características
 Hay 2 maneras de acceder a la propiedad de un objeto:
 Con la notación de corchetes: hero['occupation'].
 Con la notación de puntos: hero.occupation.
 Los objetos pueden contener otros objetos:
> var book = {
name: 'Catch-22',
published: 1961,
author: {
firstname: 'Joseph',
lastname: 'Heller'
}
};
> book.author.firstname
< "Joseph"
> book['author']['lastname']
< "Heller"
> book.author['lastname']
< "Heller"
> book['author'].lastname
< "Heller"
Objetos en JavaScript
Características
 Podemos definir un objeto vacío y luego añadirle (y quitarle) propiedades y métodos:
> var hero = {};
> typeof hero.breed
< "undefined"
> hero.breed = 'turtle';
> hero.name = 'Leonardo';
> hero.sayName = function() {return hero.name;};
> hero.sayName();
< "Leonardo"
> delete hero.name;
< true
> hero.sayName();
< reference to undefined property hero.name
 Cuando estamos dentro de un método, con this hacemos referencia al objeto al que pertenece (“this
object” ):
> var hero = {
name: 'Rafaelo',
sayName: function() {
return this.name;
}
}
> hero.sayName();
< "Rafaelo
Objetos en JavaScript
Funciones Constructoras
 Otra manera de crear objetos es mediante funciones constructoras.
 Para crear objetos con estas funciones hay que usar el operador new.
 La ventaja que tiene utilizar estas funciones constructoras es que aceptan parámetros al
crear objetos:
> function Hero(name) {
this.name = name;
this.occupation = 'Ninja';
this.whoAreYou = function() {
return "I'm " + this.name + " and I'm a " + this.occupation;
}
}
>
> var h1 = new Hero('Michelangelo');
> var h2 = new Hero('Donatello');
> h1.whoAreYou();
< "I'm Michelangelo and I'm a Ninja"
> h2.whoAreYou();
< "I'm Donatello and I'm a Ninja"
Objetos en JavaScript
Funciones Constructoras
 Todos los entornos cliente tienen un objeto global y todas las variables globales son propiedades de este objeto global.
En el navegador este objeto global se llama window. Por lo tanto, podemos acceder a una variable global “a”:
 Como una variable “a”.
 Como una propiedad del objeto global: window[‘a’] o window.a.
 Si declaramos una función constructora y la llamamos sin new:
 Devolverá undefined.
 Todas las propiedades declaradas con this se convertirán en propiedades de window.
> function Hero(name) {this.name = name;}
> var h = Hero('Leonardo');
> typeof h
< "undefined"
> typeof h.name
< h has no properties
>
> name
< "Leonardo"
> window.name
< "Leonardo"
<
> var h2 = new Hero('Michelangelo');
> typeof h2
< "object"
> h2.name
< "Michelangelo"
Objetos en JavaScript
Funciones Constructoras
 Hay maneras de evitar estos “accidentes” (llamar a un constructor sin new) como por ejemplo activar
strict mode (lanzaría una excepción en este caso).
 Cuando creamos un objeto, se le asigna siempre la propiedad constructor que contiene una referencia a
la función constructora utilizada para crear el objeto:
> h2.constructor
< Hero(name)
< 4
> var h3 = new h2.constructor('Rafaello');
> h3.name;
< "Rafaello"
< 8
> var o = {};
> o.constructor;
< Object()
> typeof o.constructor;
< "function“
 Con el operador instanceof podemos chequear si un objeto fue creado con una determinada función
constructora:
> function Hero(){}
> var h = new Hero();
> var o = {};
> h instanceof Hero;
< true
> h instanceof Object;
< false
> o instanceof Object;
< true
Objetos en JavaScript
Trabajando con Objetos
 Otra forma de crear un objeto, es a través de una función que nos devuelva un objeto.
> function factory(name) {
return {
name: name
};
}
> var o = factory('one');
> o.name
< "one"
> o.constructor
< Object()
 Podemos utilizar funciones constructoras y devolver objetos distintos de this.
> function C() { this.a = 1; }
> var c = new C();
> c.a
< 1
> function C2() { this.a = 1; return {b: 2}; }
> var c2 = new C2();
> typeof c2.a
< "undefined"
> c2.b
< 2
Objetos en JavaScript
Trabajando con Objetos
 Cuando copiamos un objeto o lo pasamos como parámetro a una función, realmente estamos pasando una referencia al
objeto. Si hacemos un cambio a esta referencia, modificaremos también el objeto original:
> var original = { howmany: 1 };
> var copy = original;
> copy.howmany
< 1
> copy.howmany = 100;
< 100
> original.howmany
< 100
>
> var nullify = function(o) { o.howmany = 0; }
> nullify(copy);
> original.howmany
< 0
 Cuando comparamos un objeto sólo obtendremos true si comparamos 2 referencias al mismo objeto
> var fido = { breed: 'dog' };
> var benji = { breed: 'dog' };
> benji === fido
< false
> benji == fido
< false
> var mydog = benji;
> mydog === benji
< true
> mydog === fido
< false

Más contenido relacionado

La actualidad más candente

Charla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScriptCharla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScriptRicardo Pallás Román
 
4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuarioLaura Folgado Galache
 
Programa Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosPrograma Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosjubacalo
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsVisual Engineering
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosWilliam Diaz S
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignacionesjorg_marq
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANSWilliam Diaz S
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Jyoc java-cap03 bucles
Jyoc java-cap03 buclesJyoc java-cap03 bucles
Jyoc java-cap03 buclesJyoc X
 
ORM Doctrine
ORM DoctrineORM Doctrine
ORM DoctrineDecharlas
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql ServerCorfapo
 
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...jaircazarin
 
Clase6 collections
Clase6 collectionsClase6 collections
Clase6 collectionsjorg_marq
 

La actualidad más candente (19)

Charla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScriptCharla congreso web introducción programación funcional en JavaScript
Charla congreso web introducción programación funcional en JavaScript
 
4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario4. Programación con arrays, funciones, y objetos definidos por el usuario
4. Programación con arrays, funciones, y objetos definidos por el usuario
 
Programa Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viverosPrograma Java que gestiona los productos que comercializan varios viveros
Programa Java que gestiona los productos que comercializan varios viveros
 
Workshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operatorsWorkshop iOS 4: Closures, generics & operators
Workshop iOS 4: Closures, generics & operators
 
P2C2 Introducción a JEE5
P2C2 Introducción a JEE5P2C2 Introducción a JEE5
P2C2 Introducción a JEE5
 
Metodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a ObjetosMetodologia para resolver problemas con Programacion orientada a Objetos
Metodologia para resolver problemas con Programacion orientada a Objetos
 
Clase3 asignaciones
Clase3 asignacionesClase3 asignaciones
Clase3 asignaciones
 
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANSTutorial  JPA Parte 1  : CRUD BASICO CON JPA Y SWING en NETBEANS
Tutorial JPA Parte 1 : CRUD BASICO CON JPA Y SWING en NETBEANS
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Herencia clase
Herencia claseHerencia clase
Herencia clase
 
Guia poo
Guia pooGuia poo
Guia poo
 
Jyoc java-cap03 bucles
Jyoc java-cap03 buclesJyoc java-cap03 bucles
Jyoc java-cap03 bucles
 
ORM Doctrine
ORM DoctrineORM Doctrine
ORM Doctrine
 
P1C5 Lenguaje de Expresiones
P1C5 Lenguaje de ExpresionesP1C5 Lenguaje de Expresiones
P1C5 Lenguaje de Expresiones
 
7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server7090112 Clase Transact Sql Server
7090112 Clase Transact Sql Server
 
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
Rompiendo dependencias contenidas en ensamblados .NET mediante la refactoriza...
 
Clase6 collections
Clase6 collectionsClase6 collections
Clase6 collections
 

Similar a Objetos JavaScript

OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjsJona Val
 
La propiedad prototype en la programación orientada a objetos con JavaScript
La propiedad prototype en la programación orientada a objetos con JavaScriptLa propiedad prototype en la programación orientada a objetos con JavaScript
La propiedad prototype en la programación orientada a objetos con JavaScriptFrancisco Javier Arce Anguiano
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con phpFer Nando
 
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 objetosFrancisco Javier Arce Anguiano
 
Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented JavascriptGabriel Chertok
 
Las funciones en JavaScript para la programación orientada a objetos
Las funciones en JavaScript para la programación orientada a objetosLas funciones en JavaScript para la programación orientada a objetos
Las funciones en JavaScript para la programación orientada a objetosFrancisco Javier Arce Anguiano
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascriptguest030dc2
 
Html5 drag and drop
Html5 drag and dropHtml5 drag and drop
Html5 drag and dropimanoltxu96
 
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...Marcelino Ortiz
 
Tips componentes swing_v5
Tips componentes swing_v5Tips componentes swing_v5
Tips componentes swing_v5ggzhack
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQueryDanae Aguilar Guzmán
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladoresPedro Cambra
 
Introducción a Java Persistence API
Introducción a Java Persistence APIIntroducción a Java Persistence API
Introducción a Java Persistence APIJose Martinez
 

Similar a Objetos JavaScript (20)

Javascript objetos
Javascript objetosJavascript objetos
Javascript objetos
 
Javascript OOP
Javascript OOPJavascript OOP
Javascript OOP
 
OOP.JAVAS pjs
OOP.JAVAS pjsOOP.JAVAS pjs
OOP.JAVAS pjs
 
Jquery parte 1
Jquery parte 1Jquery parte 1
Jquery parte 1
 
Angularjs Lógica de negocio
Angularjs Lógica de negocioAngularjs Lógica de negocio
Angularjs Lógica de negocio
 
La propiedad prototype en la programación orientada a objetos con JavaScript
La propiedad prototype en la programación orientada a objetos con JavaScriptLa propiedad prototype en la programación orientada a objetos con JavaScript
La propiedad prototype en la programación orientada a objetos con JavaScript
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Jquery 2
Jquery 2Jquery 2
Jquery 2
 
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
 
Object Oriented Javascript
Object Oriented JavascriptObject Oriented Javascript
Object Oriented Javascript
 
Las funciones en JavaScript para la programación orientada a objetos
Las funciones en JavaScript para la programación orientada a objetosLas funciones en JavaScript para la programación orientada a objetos
Las funciones en JavaScript para la programación orientada a objetos
 
El Mal Odiado Javascript
El Mal Odiado JavascriptEl Mal Odiado Javascript
El Mal Odiado Javascript
 
Html5 drag and drop
Html5 drag and dropHtml5 drag and drop
Html5 drag and drop
 
javascript.ppt
javascript.pptjavascript.ppt
javascript.ppt
 
Clase 12 jQuery basico
Clase 12  jQuery basicoClase 12  jQuery basico
Clase 12 jQuery basico
 
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...Todo lo que un desarrollador no puede desconocer de javascript   tutorial j q...
Todo lo que un desarrollador no puede desconocer de javascript tutorial j q...
 
Tips componentes swing_v5
Tips componentes swing_v5Tips componentes swing_v5
Tips componentes swing_v5
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 
Drupal7 para desarrolladores
Drupal7 para desarrolladoresDrupal7 para desarrolladores
Drupal7 para desarrolladores
 
Introducción a Java Persistence API
Introducción a Java Persistence APIIntroducción a Java Persistence API
Introducción a Java Persistence API
 

Más de José Ricardo Tillero Giménez

Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPGuía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPJosé Ricardo Tillero Giménez
 

Más de José Ricardo Tillero Giménez (20)

PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
PLAN DE EVALUACIÓN REDES AVANZADAS II-2021PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
PLAN DE EVALUACIÓN REDES AVANZADAS II-2021
 
Guía Ejercicios SQL
Guía Ejercicios SQLGuía Ejercicios SQL
Guía Ejercicios SQL
 
Guía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de DatosGuía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de Datos
 
Guía 1 Ejercicios MR
Guía 1 Ejercicios MRGuía 1 Ejercicios MR
Guía 1 Ejercicios MR
 
Guía 2 Ejercicios de Normalización de Base de Datos
Guía 2 Ejercicios de Normalización de Base de DatosGuía 2 Ejercicios de Normalización de Base de Datos
Guía 2 Ejercicios de Normalización de Base de Datos
 
Guía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER ExtendidoGuía 3 Ejercicios MER Extendido
Guía 3 Ejercicios MER Extendido
 
Guía 2 Ejercicios MER
Guía 2 Ejercicios MERGuía 2 Ejercicios MER
Guía 2 Ejercicios MER
 
Guía 1 Ejercicios MER
Guía 1 Ejercicios MERGuía 1 Ejercicios MER
Guía 1 Ejercicios MER
 
Plan de evaluación BD2021
Plan de evaluación BD2021Plan de evaluación BD2021
Plan de evaluación BD2021
 
Perfil Docente y Asesoría
Perfil Docente y AsesoríaPerfil Docente y Asesoría
Perfil Docente y Asesoría
 
Planificación BD2021
Planificación BD2021Planificación BD2021
Planificación BD2021
 
UNIDAD 1. El mundo de las Bases de Datos y los SMBD
UNIDAD 1. El mundo de las Bases de Datos y los SMBDUNIDAD 1. El mundo de las Bases de Datos y los SMBD
UNIDAD 1. El mundo de las Bases de Datos y los SMBD
 
NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301NOTAS FINALES DE REDES AVANZADAS IIN4301
NOTAS FINALES DE REDES AVANZADAS IIN4301
 
NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102NOTAS FINALES ELECTIVA II IN2102
NOTAS FINALES ELECTIVA II IN2102
 
NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101NOTAS FINALES ELECTIVA II IN2101
NOTAS FINALES ELECTIVA II IN2101
 
Notas definitivas per base de datos
Notas definitivas per base de datosNotas definitivas per base de datos
Notas definitivas per base de datos
 
Clase 6 VLAN
Clase 6 VLANClase 6 VLAN
Clase 6 VLAN
 
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRPGuía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
Guía de Redistribución de protocolos de ruteo RIP, PSPF y EIGRP
 
Guía CISCO de redistribución de protocolos de ruteo
Guía CISCO de redistribución de protocolos de ruteoGuía CISCO de redistribución de protocolos de ruteo
Guía CISCO de redistribución de protocolos de ruteo
 
Manual Basico de jQuery
Manual Basico de jQueryManual Basico de jQuery
Manual Basico de jQuery
 

Último

Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVGiustinoAdesso1
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 

Último (20)

Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 

Objetos JavaScript

  • 1. Electiva II Clase 6 Objetos en JavaScript Ing. José Ricardo Tillero UPTAEB
  • 2. Objetos en JavaScript Características  Un objeto es como un array pero donde los índices los definimos nosotros.  Para definir un objeto utilizamos las llaves { } ( object literal notation ).  Los elementos de un objeto ( propiedades ) los separamos por comas: > var hero = { breed: 'Turtle', occupation: 'Ninja' };  Las claves (keys, nombres de las propiedades) pueden ir entre comillas, pero no se recomienda.  El par clave/valor (key/value) lo dividimos con 2 puntos: > var o = {prop: 1}; > var o = {"prop": 1}; > var o = {'prop': 1};  Cuando una propiedad contiene una función, decimos que esta propiedad es un método del objeto: > var dog = { name: 'Benji', talk: function(){ alert('Woof, woof!'); } };
  • 3. Objetos en JavaScript Características  Hay 2 maneras de acceder a la propiedad de un objeto:  Con la notación de corchetes: hero['occupation'].  Con la notación de puntos: hero.occupation.  Los objetos pueden contener otros objetos: > var book = { name: 'Catch-22', published: 1961, author: { firstname: 'Joseph', lastname: 'Heller' } }; > book.author.firstname < "Joseph" > book['author']['lastname'] < "Heller" > book.author['lastname'] < "Heller" > book['author'].lastname < "Heller"
  • 4. Objetos en JavaScript Características  Podemos definir un objeto vacío y luego añadirle (y quitarle) propiedades y métodos: > var hero = {}; > typeof hero.breed < "undefined" > hero.breed = 'turtle'; > hero.name = 'Leonardo'; > hero.sayName = function() {return hero.name;}; > hero.sayName(); < "Leonardo" > delete hero.name; < true > hero.sayName(); < reference to undefined property hero.name  Cuando estamos dentro de un método, con this hacemos referencia al objeto al que pertenece (“this object” ): > var hero = { name: 'Rafaelo', sayName: function() { return this.name; } } > hero.sayName(); < "Rafaelo
  • 5. Objetos en JavaScript Funciones Constructoras  Otra manera de crear objetos es mediante funciones constructoras.  Para crear objetos con estas funciones hay que usar el operador new.  La ventaja que tiene utilizar estas funciones constructoras es que aceptan parámetros al crear objetos: > function Hero(name) { this.name = name; this.occupation = 'Ninja'; this.whoAreYou = function() { return "I'm " + this.name + " and I'm a " + this.occupation; } } > > var h1 = new Hero('Michelangelo'); > var h2 = new Hero('Donatello'); > h1.whoAreYou(); < "I'm Michelangelo and I'm a Ninja" > h2.whoAreYou(); < "I'm Donatello and I'm a Ninja"
  • 6. Objetos en JavaScript Funciones Constructoras  Todos los entornos cliente tienen un objeto global y todas las variables globales son propiedades de este objeto global. En el navegador este objeto global se llama window. Por lo tanto, podemos acceder a una variable global “a”:  Como una variable “a”.  Como una propiedad del objeto global: window[‘a’] o window.a.  Si declaramos una función constructora y la llamamos sin new:  Devolverá undefined.  Todas las propiedades declaradas con this se convertirán en propiedades de window. > function Hero(name) {this.name = name;} > var h = Hero('Leonardo'); > typeof h < "undefined" > typeof h.name < h has no properties > > name < "Leonardo" > window.name < "Leonardo" < > var h2 = new Hero('Michelangelo'); > typeof h2 < "object" > h2.name < "Michelangelo"
  • 7. Objetos en JavaScript Funciones Constructoras  Hay maneras de evitar estos “accidentes” (llamar a un constructor sin new) como por ejemplo activar strict mode (lanzaría una excepción en este caso).  Cuando creamos un objeto, se le asigna siempre la propiedad constructor que contiene una referencia a la función constructora utilizada para crear el objeto: > h2.constructor < Hero(name) < 4 > var h3 = new h2.constructor('Rafaello'); > h3.name; < "Rafaello" < 8 > var o = {}; > o.constructor; < Object() > typeof o.constructor; < "function“  Con el operador instanceof podemos chequear si un objeto fue creado con una determinada función constructora: > function Hero(){} > var h = new Hero(); > var o = {}; > h instanceof Hero; < true > h instanceof Object; < false > o instanceof Object; < true
  • 8. Objetos en JavaScript Trabajando con Objetos  Otra forma de crear un objeto, es a través de una función que nos devuelva un objeto. > function factory(name) { return { name: name }; } > var o = factory('one'); > o.name < "one" > o.constructor < Object()  Podemos utilizar funciones constructoras y devolver objetos distintos de this. > function C() { this.a = 1; } > var c = new C(); > c.a < 1 > function C2() { this.a = 1; return {b: 2}; } > var c2 = new C2(); > typeof c2.a < "undefined" > c2.b < 2
  • 9. Objetos en JavaScript Trabajando con Objetos  Cuando copiamos un objeto o lo pasamos como parámetro a una función, realmente estamos pasando una referencia al objeto. Si hacemos un cambio a esta referencia, modificaremos también el objeto original: > var original = { howmany: 1 }; > var copy = original; > copy.howmany < 1 > copy.howmany = 100; < 100 > original.howmany < 100 > > var nullify = function(o) { o.howmany = 0; } > nullify(copy); > original.howmany < 0  Cuando comparamos un objeto sólo obtendremos true si comparamos 2 referencias al mismo objeto > var fido = { breed: 'dog' }; > var benji = { breed: 'dog' }; > benji === fido < false > benji == fido < false > var mydog = benji; > mydog === benji < true > mydog === fido < false