Blog
JavaScript es un lenguaje diseñado en base al paradigma de programación orientado a objetos, el cual garantiza una mayor comprensión de situaciones y facilita tanto la codificación como el mantenimiento del software.
En este módulo entenderemos todo lo relacionado a los objetos y aprenderemos a crearlos.
Terminología básica
- Clase: Define las diferentes características del Objeto.
- Objeto: Es la instancia o entidad de una Clase.
- Propiedad: Se refiere a la característica del Objeto, como el tamaño o el color.
- Método: Acción que realiza el Objeto, como saludar.
Objeto
Un objeto no es más que una entidad o instancia caracterizada por diversas propiedades.
Es similar a un objeto de la vida real; por ejemplo, un vaso tiene un color, peso, tamaño, entre otros. Así mismo sucede en la programación, los objetos tienen propiedades asociadas que pueden definirse mediante una variable.
Para crear un objeto podemos utilizar una función constructora, en la que se define el tipo de objeto y luego se crea una instancia del objeto a través del operador new.
Sintaxis
-
Creando una clase
function Objeto(propiedad1, propiedad1, propiedad3, …){ this.propiedad_1 = propiedad_1; this.propiedad_2 = propiedad_2; this.propiedad_3 = propiedad_2; … this.propiedad_n = propiedad_n; } // Ejemplo: function Telefono(marca, sistema, versión){ this.marca = marca; this.sistema = sistema; this.version = version; }
-
Creando un objeto o instancia de una clase
var nombreObjeto = new Objeto (); // Creando una instancia de la clase Telefono var miTelefono = new Telefono ();
-
Estableciendo sus propiedades
nombreObjeto.nombrePropiedad = valor; //Ejemplo: miTelefono.marca = “Samsung”; miTelefono.sistema = “Android”; miTelefono.version = “8.0”;
El nombre de la propiedad puede ser cualquier identificador válido de JS. Pero habrá ocasiones en que su nombre será determinado de forma dinámica durante la ejecución, lo que podría ocasionar que comience con un número o que tenga un guión o un espacio. En estos casos es realmente útil la notación de corchetes para determinar las propiedades.
miTelefono [“marca”] = “Samsung”; miTelefono [“sistema”] = “Android”; miTelefono [“version”] = “8.0”;
También es posible hacerlo usando el valor de una variable.
var nombrePropiedad = “marca”; miTelefono [nombrePropiedad] = “Samsung”;
Incluso un objeto puede tener como propiedad otro objeto.
// Creando la clase Persona Function Persona (nombre, apellido, edad){ this.nombre = nombre; this.apellido = apellido; this.edad = edad; } // Creando el objeto y estableciendo propiedades var Camilo = new Persona; Camilo.nombre = “Camilo”; Camilo.apellido = “Fernandez”; Camilo.edad = 40; //Añadiendo una nueva propiedad a la clase Telefono function Telefono(marca, sistema, versión, propietario){ this.marca = marca; this.sistema = sistema; this.version = version; this.propietario = propietario; } var miTelefono = new Telefono (“Samsung”, “Android”, ”8.0”, Camilo); // Establecemos las propiedades e incluimos el objeto Camilo de la clase persona.
Ahora bien, para conocer el propietario solo debemos escribir:
miTelefono.propietario.nombre;
Como puedes notar “miTelefono” es una instancia de la clase “Teléfono” que posee como propiedad las características de la clase “Persona”.
Métodos
Además de propiedades, los objetos también son capaces de ejecutar acciones establecidas para el buen funcionamiento del programa, es a lo que denominamos método. En JavaScript puede definirse como otra propiedad de un objeto representada como una función. Para crearlos debemos escribir lo siguiente:
nombreClase.nombreMetodo.nombreFuncion= function(){ // Sentencias }; // Llamando a la función miObjeto.nombreFuncion(); // Ejemplo Persona.saludo.diHola = function(){ alert (“Hola, Soy “ + this.nombre + “ ” + this.apellido); }; Camilo.diHola(); // mostrara en pantalla: “Hola, Soy Camilo Fernandez”;
- nombreClase es la clase previamente declarada.
- nombreMetodo es el nombre que se le asignará al método.
- nombreFuncion es el nombre de la función que desempeñará el objeto.
Observación final
Es importante aclarar que la sintaxis vista en este módulo no es la única que existe para la aplicación de la POO en JavaScript; sin embargo, son útiles para comenzar a utilizar este paradigma.
Más adelante en el curso avanzado se profundizará más acerca del tema.