Saltear al contenido principal
Título curso Aprende a programar (con Javascript)

Objetos: propiedades y métodos

Objetos

Hemos hablado antes brevemente del concepto de objeto al ver los distintos tipos de variables y datos. Lo definíamos como una especie de modelo con el que representamos una cosa o un concepto de la vida real.

Propiedades de los objetos

Vimos que podíamos definir variables y asociarlas a ese objeto. A esas variables las denominamos propiedades (también se les suele llamar atributos) y son características propias de ese objeto.

Por ejemplo, en un coche podían ser la marca, el modelo, potencia del motor, capacidad del maletero, etc. Si lo piensas, seguro que te ocurrirán muchas.

Cuando definimos un objeto en programación, solo elegimos las propiedades que nos interesan para el tipo de proceso o tarea que estamos intentando gestionar. Por ejemplo, si hablamos de coches, en el contexto de un taller nos puede interesar saber el número de kilómetros que tiene el vehículo y cuándo ha sido su última reparación o mantenimiento, y por tanto, definir las propiedades/variables que nos sirvan para almacenar esos datos. En cambio esa información no es necesaria o útil si el contexto es otro, como por ejemplo si gestionamos un concesionario de venta de vehículos nuevos, donde podríamos necesitar el precio y el stock disponible, o un Rally de coches deportivos, donde quizás nos interese el nombre del conductor y los tiempos que realice.

Métodos de los objetos

Ademas de propiedades, a los objetos podemos definirle una serie de métodos que son instrucciones que pueden cambiar los valores que hemos asignado a esas propiedades. En el caso del Taller podríamos pensar en métodos como el «realizar revisión periódica» o el «arreglar avería», que podrían cambiar las fechas de la última revisión y de la última reparación respectivamente.

Javascript es un lenguaje basado en objetos. De hecho la mayoría de elementos son objetos o pueden ser tratados como tales. Esto incluye a los tipos de datos ‘string’, ‘number’ y ‘arrays’, a los que podemos aplicar métodos o acciones como explicaremos en los siguientes apartados.

Además, Javascript incluye otra serie de ‘objetos built-in(*) como por ejemplo los objetos Date, Math o Regex (veremos en detalle los dos primeros), o aquellos que tienen que ver con el documento HTML, y el navegador donde éste se visualiza (Window, Document, History,…), que no abordaremos en este curso al ser una cuestión específica de la programación web (puedes estudiarlos en nuestro curso de Javascript).

Nota (*): los objetos que no definimos nosotros sino que ya vienen incorporados en Javascript se le denominan ‘objetos built-in

Pues bien, como quizás hayas pensado ya, los métodos no son más que funciones, como las que hemos visto en el apartado anterior. En ellos encapsulamos una serie de instrucciones que podemos luego llamar y aplicar sobre el objeto en el cuál se han definido, de forma parecida a cómo lo hemos hecho con las funciones, eso sí, especificando dicho objeto con la notación: objeto.metodo()

Vemos unos ejemplos de esa notación, y cuya funcionalidad explicaremos en los apartados siguientes:

(1) Math.sin(45);

(2) numero1.toFixed(2);

(3) texto1.search("Digital Learning");

en estas instrucciones, identificamos los siguientes elementos:

  • los objetos: (1) Math, (2) numero1 y (3) texto1
  • los métodos: (1) sin(), (2) toFixed(), (3) search()
  • los argumentos que le pasamos al método: (1) 45, (2) 2, (3) «Digital Learning»

y realizan respectivamente:

  • (1) calcula el seno de 45º
  • (2) limita a dos decimales el valor de un número, haciendo el correspondiente redondeo
  • (3) busca la cadena «Digital Learning» en un texto

Nota: no te preocupes si no entiendes del todo este subapartado, no te es necesario para seguir avanzando. Como decíamos, solo queremos darte una primera referencia, sin entrar a detallar las explicaciones, porque si no, nos extenderíamos mucho e iríamos más allá de los objetivos de este curso.

Aunque el enfoque a objetos es muy útil, hay que tener en cuenta que en JavaScript el tratamiento es un tanto particular. JS es un lenguaje basado en objetos, que es algo diferente a otros lenguajes orientados a objetos como Java, C# o Python. Por ejemplo, aunque el concepto «clase» se introdujo en JavaScript a partir de la versión ES6, no llega a tener todas las características que son propias de esos lenguajes.

Si quieres conocer algo más acerca de todo esto, puedes leer este artículo donde explicamos los conceptos de clase, objetos, métodos y propiedades en el entorno Greenfoot, un Java simplificado con fines educativos. Si quieres profundizar más, te recomendamos nuestro curso Java para Android y POO donde verás los fundamentos de la Programación Orientada a Objetos (aquí tienes un video incluido en este curso donde se introducen alguno aspectos fundamentales de las clases/objetos).

Creación de objetos

Aunque en este curso no vamos a trabajar con objetos creados por nosotros, creemos que es oportuno que conozcas las formas de crearlos y la interacción básica con ellos, para al menos distinguir esa notación si la ves en un script, por ejemplo al declarar el objeto Date que veremos más adelante.

Hay dos notaciones para crear objetos en Javascript:

Notación literal: vimos esta notación al hablar de los tipos de datos. Utilizaba llaves ({}) para encerrar la declaración de propiedades y métodos del objeto. Vemos un ejemplo:

Comentamos algunos características de esta notación:

  • Vemos que los valores a las propiedades se asignan con ‘ : ‘ (dos puntos), y no ‘ = ‘.
  • Vemos que las propiedades se separan por comas (como en los valores de los arrays) y no con punto y coma.
  • El método que hemos definido en el objeto, lo hemos llamado ‘horasRestantes’, y como ves es básicamente una función, pero asociado a dicho objeto.
  • La palabra clave ‘this‘ reemplaza el nombre del objeto, y se utiliza por razones prácticas en las que no vamos a extendernos aquí. Es decir, podríamos haber escrito ‘asignatura.horasAnuales’.

Notación constructor:  empleamos la expresión new Objeto() . En este caso creamos un objeto vacío al que luego podemos asociar propiedades con sus valores correspondientes, y métodos, a través de las notaciones:   objeto.propiedad =  y   objeto.metodo = .

En el caso de los métodos empleamos lo que se denominan ‘funciones anónimas’, es decir, que no tienen nombre y no se les puede llamar como a las funciones ‘normales’, sino que simplemente se ejecutan cuando el intérprete llega a ese punto del programa, como si fueran una expresión.  

Vemos un ejemplo:

Para manipular el objeto que hemos definido (cambiar el valor de una propiedad y utilizar su método), puedes probar con este ejemplo. Empleamos la notación literal para definirlo, pero es exactamente igual si hubiéramos empleado la notación constructor:

Saber más: este es un ejemplo muy simple, solo para hacernos una idea de la notación. En este caso podríamos también haber creado un template  ‘Asignatura’, es decir una plantilla a partir del cual crearíamos objetos asignatura específicos: ‘asignaturaHistoria’, ‘asignaturaGeografia’, etc… Como hemos dicho, no vamos a desarrollar este tema al exceder el objetivo de estos contenidos.

Volver arriba
Esta web usa cookies para su correcto funcionamiento. No hay cookies de publicidad, aunque algunos de los contenidos mostrados (videos o documentos insertados) están alojados en servicios externos (Youtube, Vimeo, Box...) que sí pueden implementar sus propias cookies.    Más información
Privacidad