SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
ES6: clases
Clases
Class
● Ahora podemos hacer clases por medio de la sentencia “class”.
● Podemos utilizar el método “ constructor()” para crear la función
constructora.
● Los lenguajes tradicionales basados en clases ofrecen la palabra reservada
this para referencia la instancia actual de la clase.
● En Javascript this se refiere al contexto de la llamada y como tal puede ser
cambiado a algo más que un objeto.
ES6: instancias
Objeto
Objeto
● Un objeto es una instancia de la clase, la cual es creada usando el operador
new.
● Cuando se usa un punto para acceder al método del objeto, this se va a
referir al objeto a la izquierda al punto.
Objeto
let burger = new Hamburger();
burger.listToppings();
● En este código vemos que cuando this es usada desde adentro de la clase
Hamburger, Se va a referir al objeto burger.
ES6: herencia
Herencia
Herencia
● Al igual que en otros lenguajes de programación, una clase puede extender
otra clase heredando métodos o propiedades de la clase padre.
Herencia
● La función super() ejecuta el método con el mismo nombre desde el que se
está llamando a super(), de esta forma al definir el nuevo constructor
llamamos a super() y le pasamos los mismos parámetros que recibe el
constructor, entonces se ejecuta ese constructor y luego código del nuevo.
ES6: Getters y Setters
Getters y Setters
● En algunos lenguajes de programación (como Java) existen los getters y
setters.
● Estos métodos que se usan para controlar variables internas de un objeto
(propiedades).
● Para usarlos simplemente se agrega get o set delante del nombre del
método de la siguiente forma:
Getters y Setters
● Definir un método get con el nombre que quieras (no puede ser el nombre
de la propiedad) y este debería devolver el valor deseado (técnicamente
puede hacer cualquier cosa el método), o defines un método set con otro
nombre (tampoco el mismo de la propiedad) y que recibe el nuevo valor y lo
asigna a this .
Getters y Setters
● Aunque esto hace bastante más legible y limpio el código, al tener métodos
específicos para obtener o modificar propiedades del objeto, la verdad es
que no son necesarios ya que simplemente usando la sintaxis de objetos de
toda la vida puedes obtener el valor de una propiedad y modificarlo.
ES6: Métodos estáticos
Métodos estáticos
● Al igual que en otros lenguajes también va a ser posible crear métodos
estáticos usando la palabra clave static antes del nombre del método.
class miClase {
static miMetodo() {
return 'hola mundo'
}
}
Métodos estáticos
● Luego para poder usarlo simplemente llamas al método desde la clase sin
instanciar:
let mensaje = miClase.miMetodo(); // 'hola mundo';
ES6: Características
Características
● Los nombres de las clases no pueden ser eval ó arguments;
● No están permitidos nombres de clase repetidos.
● El nombre constructor solo puede ser usado para métodos, no para getters,
setter o un generador de métodos
● Las clases no se pueden llamar antes de definirse.
● Todavía se puede instanciar la clase desde cualquier parte, solo es
necesario esperar a que esté definida.
Referencias
https://medium.com/@lehiarteaga/ecmascript-6-es6-y-sus-caracter%C3%ADstic
as-55a1fc9275b1
http://www.enrique7mc.com/2015/12/novedades-de-es6/
https://platzi.com/blog/ecmascript-nueva-sintaxis/
http://es6-features.org/#ClassInheritanceFromExpressions

Más contenido relacionado

La actualidad más candente

Clase 2 3 estructuras de control
Clase 2 3 estructuras de controlClase 2 3 estructuras de control
Clase 2 3 estructuras de control
BoOriz Hero
 
Lenguaje javascript
Lenguaje javascriptLenguaje javascript
Lenguaje javascript
Xoch Flores
 
Taller de programación clase #4
Taller de programación   clase #4Taller de programación   clase #4
Taller de programación clase #4
Juan Cardona
 
Taller de programación clase #3
Taller de programación   clase #3Taller de programación   clase #3
Taller de programación clase #3
Carlos Posada
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual C
oswchavez
 

La actualidad más candente (18)

Semana 5 Java Swing
Semana 5   Java SwingSemana 5   Java Swing
Semana 5 Java Swing
 
Semana 1 Estructuras de Control en Java
Semana 1   Estructuras de Control en JavaSemana 1   Estructuras de Control en Java
Semana 1 Estructuras de Control en Java
 
Semana 2 Clases y Objetos en Java
Semana 2   Clases y Objetos en JavaSemana 2   Clases y Objetos en Java
Semana 2 Clases y Objetos en Java
 
Do while n
Do while nDo while n
Do while n
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
Clase 2 3 estructuras de control
Clase 2 3 estructuras de controlClase 2 3 estructuras de control
Clase 2 3 estructuras de control
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
estructura de un programa en java
estructura de un programa en javaestructura de un programa en java
estructura de un programa en java
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Lenguaje javascript
Lenguaje javascriptLenguaje javascript
Lenguaje javascript
 
Taller de programación clase #4
Taller de programación   clase #4Taller de programación   clase #4
Taller de programación clase #4
 
Taller de programación clase #3
Taller de programación   clase #3Taller de programación   clase #3
Taller de programación clase #3
 
MéTodos
MéTodosMéTodos
MéTodos
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual C
 
Comandos de Java
Comandos de JavaComandos de Java
Comandos de Java
 
Practica 1 html_basico
Practica 1 html_basicoPractica 1 html_basico
Practica 1 html_basico
 
La destrucción del objeto
La destrucción del objetoLa destrucción del objeto
La destrucción del objeto
 
Cuarta sesion herencia y polimorfismo-explicacion anibal
Cuarta sesion herencia y polimorfismo-explicacion anibalCuarta sesion herencia y polimorfismo-explicacion anibal
Cuarta sesion herencia y polimorfismo-explicacion anibal
 

Destacado

Destacado (8)

Nuevos Métodos en ES6
Nuevos Métodos en ES6Nuevos Métodos en ES6
Nuevos Métodos en ES6
 
Nuevas características de los objetos en JavaScript ES6
Nuevas características de los objetos en JavaScript ES6Nuevas características de los objetos en JavaScript ES6
Nuevas características de los objetos en JavaScript ES6
 
El nuevo tipo de datos "símbolo" o "symbol"
El nuevo tipo de datos "símbolo" o "symbol"El nuevo tipo de datos "símbolo" o "symbol"
El nuevo tipo de datos "símbolo" o "symbol"
 
Objetos de propagación o ...spread
Objetos de propagación o ...spreadObjetos de propagación o ...spread
Objetos de propagación o ...spread
 
Valores por default en argumentos
Valores por default en argumentosValores por default en argumentos
Valores por default en argumentos
 
Mejoras en las expresiones regulares
Mejoras en las expresiones regularesMejoras en las expresiones regulares
Mejoras en las expresiones regulares
 
El nuevo objeto para internacionalización y localización Intl
El nuevo objeto para internacionalización y localización IntlEl nuevo objeto para internacionalización y localización Intl
El nuevo objeto para internacionalización y localización Intl
 
Literales octales y binarias:
Literales octales y binarias: Literales octales y binarias:
Literales octales y binarias:
 

Similar a La programación orientada a objetos con JavaScript ES6

Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributos
Robert Wolf
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
ecodereck
 
Variables y metodos de instancia
Variables y metodos de instanciaVariables y metodos de instancia
Variables y metodos de instancia
Robert Wolf
 

Similar a La programación orientada a objetos con JavaScript ES6 (20)

03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Guia poo
Guia pooGuia poo
Guia poo
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
 
Clase viii
Clase viiiClase viii
Clase viii
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
Unidad o informatica
Unidad o informaticaUnidad o informatica
Unidad o informatica
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Clases metodos y atributos
Clases metodos y atributosClases metodos y atributos
Clases metodos y atributos
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Guia poo php
Guia poo phpGuia poo php
Guia poo php
 
Programación ii presentación tema 5
Programación ii presentación tema 5Programación ii presentación tema 5
Programación ii presentación tema 5
 
Métodos en Java-Con ejemplos
Métodos en Java-Con ejemplosMétodos en Java-Con ejemplos
Métodos en Java-Con ejemplos
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
Variables y metodos de instancia
Variables y metodos de instanciaVariables y metodos de instancia
Variables y metodos de instancia
 
Datos previos
Datos previosDatos previos
Datos previos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 

Más de Francisco Javier Arce Anguiano

Más de Francisco Javier Arce Anguiano (20)

HTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation LanguageHTML5 API WebSQL Database: DML: Data Manipulation Language
HTML5 API WebSQL Database: DML: Data Manipulation Language
 
HTML5 API WebSQL Database: Funciones de agregado
HTML5 API WebSQL Database: Funciones de agregadoHTML5 API WebSQL Database: Funciones de agregado
HTML5 API WebSQL Database: Funciones de agregado
 
WebSQl DataBase HTML5-dql - data query language
WebSQl DataBase HTML5-dql - data query languageWebSQl DataBase HTML5-dql - data query language
WebSQl DataBase HTML5-dql - data query language
 
Las etiquetas estructurales en html5
Las etiquetas estructurales en html5Las etiquetas estructurales en html5
Las etiquetas estructurales en html5
 
Los metadatos de HTML5
Los metadatos de HTML5Los metadatos de HTML5
Los metadatos de HTML5
 
El doctype de HTML5
El doctype de HTML5El doctype de HTML5
El doctype de HTML5
 
Historia de HTML5
Historia de HTML5Historia de HTML5
Historia de HTML5
 
SQLite y PHP: DQL - data query language
SQLite y PHP: DQL - data query languageSQLite y PHP: DQL - data query language
SQLite y PHP: DQL - data query language
 
Introducción a SQLite 3 y PHP
Introducción a SQLite 3 y PHPIntroducción a SQLite 3 y PHP
Introducción a SQLite 3 y PHP
 
Crear el perfil provisional para desarrollar aplicaciones iOS
Crear el perfil provisional para desarrollar aplicaciones iOSCrear el perfil provisional para desarrollar aplicaciones iOS
Crear el perfil provisional para desarrollar aplicaciones iOS
 
Identificar el dispositivo para desarrollar en iOS
Identificar el dispositivo para desarrollar en iOSIdentificar el dispositivo para desarrollar en iOS
Identificar el dispositivo para desarrollar en iOS
 
Crear un ID para la aplicación iOS
Crear un ID para la aplicación iOSCrear un ID para la aplicación iOS
Crear un ID para la aplicación iOS
 
Crear un certificado P12 para desarrollar en iOS
Crear un certificado P12 para desarrollar en iOSCrear un certificado P12 para desarrollar en iOS
Crear un certificado P12 para desarrollar en iOS
 
Crear certificado CSR para iOS
Crear certificado CSR para iOSCrear certificado CSR para iOS
Crear certificado CSR para iOS
 
Crear una cuenta de desarrollador para iOS
Crear una cuenta de desarrollador para iOSCrear una cuenta de desarrollador para iOS
Crear una cuenta de desarrollador para iOS
 
Apuntes: SublimeText 3
Apuntes: SublimeText 3Apuntes: SublimeText 3
Apuntes: SublimeText 3
 
Apuntes; Aptana Studio 3
Apuntes;  Aptana Studio 3Apuntes;  Aptana Studio 3
Apuntes; Aptana Studio 3
 
Apuntes: manejo de eventos en javascript
Apuntes: manejo de eventos en javascriptApuntes: manejo de eventos en javascript
Apuntes: manejo de eventos en javascript
 
Apuntes: los objetos del navegador de Javascript
Apuntes: los objetos del navegador de JavascriptApuntes: los objetos del navegador de Javascript
Apuntes: los objetos del navegador de Javascript
 
Apuntes: Arreglos y objetos en JavaScript
Apuntes: Arreglos y objetos en JavaScriptApuntes: Arreglos y objetos en JavaScript
Apuntes: Arreglos y objetos en JavaScript
 

La programación orientada a objetos con JavaScript ES6

  • 2. Class ● Ahora podemos hacer clases por medio de la sentencia “class”. ● Podemos utilizar el método “ constructor()” para crear la función constructora. ● Los lenguajes tradicionales basados en clases ofrecen la palabra reservada this para referencia la instancia actual de la clase. ● En Javascript this se refiere al contexto de la llamada y como tal puede ser cambiado a algo más que un objeto.
  • 4. Objeto ● Un objeto es una instancia de la clase, la cual es creada usando el operador new. ● Cuando se usa un punto para acceder al método del objeto, this se va a referir al objeto a la izquierda al punto.
  • 5. Objeto let burger = new Hamburger(); burger.listToppings(); ● En este código vemos que cuando this es usada desde adentro de la clase Hamburger, Se va a referir al objeto burger.
  • 7. Herencia ● Al igual que en otros lenguajes de programación, una clase puede extender otra clase heredando métodos o propiedades de la clase padre.
  • 8. Herencia ● La función super() ejecuta el método con el mismo nombre desde el que se está llamando a super(), de esta forma al definir el nuevo constructor llamamos a super() y le pasamos los mismos parámetros que recibe el constructor, entonces se ejecuta ese constructor y luego código del nuevo.
  • 9. ES6: Getters y Setters
  • 10. Getters y Setters ● En algunos lenguajes de programación (como Java) existen los getters y setters. ● Estos métodos que se usan para controlar variables internas de un objeto (propiedades). ● Para usarlos simplemente se agrega get o set delante del nombre del método de la siguiente forma:
  • 11. Getters y Setters ● Definir un método get con el nombre que quieras (no puede ser el nombre de la propiedad) y este debería devolver el valor deseado (técnicamente puede hacer cualquier cosa el método), o defines un método set con otro nombre (tampoco el mismo de la propiedad) y que recibe el nuevo valor y lo asigna a this .
  • 12. Getters y Setters ● Aunque esto hace bastante más legible y limpio el código, al tener métodos específicos para obtener o modificar propiedades del objeto, la verdad es que no son necesarios ya que simplemente usando la sintaxis de objetos de toda la vida puedes obtener el valor de una propiedad y modificarlo.
  • 14. Métodos estáticos ● Al igual que en otros lenguajes también va a ser posible crear métodos estáticos usando la palabra clave static antes del nombre del método. class miClase { static miMetodo() { return 'hola mundo' } }
  • 15. Métodos estáticos ● Luego para poder usarlo simplemente llamas al método desde la clase sin instanciar: let mensaje = miClase.miMetodo(); // 'hola mundo';
  • 17. Características ● Los nombres de las clases no pueden ser eval ó arguments; ● No están permitidos nombres de clase repetidos. ● El nombre constructor solo puede ser usado para métodos, no para getters, setter o un generador de métodos ● Las clases no se pueden llamar antes de definirse. ● Todavía se puede instanciar la clase desde cualquier parte, solo es necesario esperar a que esté definida.