Skip to content

Instantly share code, notes, and snippets.

@djom202
Created December 31, 2017 03:37
Show Gist options
  • Save djom202/b81b94aa9b3d62b27e3a5635ce537e14 to your computer and use it in GitHub Desktop.
Save djom202/b81b94aa9b3d62b27e3a5635ce537e14 to your computer and use it in GitHub Desktop.
Objetos en JavaScript

Objetos en JavaScript

Cuando se está comenzando a aprender JavaScript se suele adquirir la mala costumbre de crear funciones e ir copiando el mismo código fuente en archivos de otros proyectos nuevos. El problema es que a medida que el número de proyectos y funciones va creciendo y es necesario modificar éstas, hay que realizar dicha modificación en todos los proyectos.

Una forma de evitarlo, es guardar todas las funciones del mismo tipo (por ejemplo, referentes a fechas) en un archivo y copiarlo a otros proyectos.

Pero aún mejor es crear un Objeto en JavaScript con dichas funciones encapsuladas dentro del mismo (pasarían a denominarse métodos), teniendo así nuestro código fuente mejor estructurado y controlado.

Para crear un Objeto en JavaScript, como sucede en todo Lenguaje de Programación Orientado a Objetos es preciso crear su constructor (digamos que sería la función principal), propiedades (o variables internas del Objeto) y métodos (las funciones internas del mismo).

// Crear un Objeto de tipo Vehiculo
var objVehiculo1 = new Vehiculo( "Toyota", "Corolla", Vehiculo.CAMION );
// Obtener el valor de una propiedad a través del Método del correspondiente:
alert( "Fabricante del vehículo 1: [" + objVehiculo1.getFabricante() + "]" );
alert( "Tipo del vehículo 1: [" + objVehiculo1.getTipo() + "]" );
// Otra forma, accediendo directamente a la Propiedad del Objeto (no recomendado):
alert( "Modelo del vehículo 1: [" + objVehiculo1.modelo + "]" );
// Crear otro Objeto de tipo Vehiculo
var objVehiculo2 = new Vehiculo();
objVehiculo2.setFabricante("SEAT");
objVehiculo2.setModelo( "Panda" ) ;
alert( "Vehículo 2: [" + objVehiculo2.getFabricante() + "] y es de tipo [" + objVehiculo2.getModelo() + "]" );
// Propiedades:
Vehiculo.prototype.fabricante = null;
Vehiculo.prototype.modelo = null;
Vehiculo.prototype.tipo = 0;
// Propiedades (Constantes):
Vehiculo.NO_ESPECIFICADO = 0;
Vehiculo.COCHE = 1;
Vehiculo.CAMION = 2;
Vehiculo.MOTO = 3;
// ------------------ CONSTRUCTORES -----------------------
// Constructor vacío
function Vehiculo() {
}
// Constructor
function Vehiculo( fabricante, modelo, tipo )
{
this.fabricante = fabricante;
this.modelo = modelo;
this.tipo = tipo;
}
// --------------------- MÉTODOS --------------------------
Vehiculo.prototype.setFabricante = function( fabricante ) {
this.fabricante = fabricante;
}
Vehiculo.prototype.getFabricante = function() {
return this.fabricante;
}
Vehiculo.prototype.setModelo = function( modelo ) {
this.modelo = modelo;
}
Vehiculo.prototype.getModelo = function() {
return this.modelo;
}
Vehiculo.prototype.setTipo = function( tipo ) {
this.tipo = tipo;
}
Vehiculo.prototype.getTipo = function() {
return this.tipo;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment