Orientación a objetos con JavaScript

Hoy en dia es impesable una programación compleja sin una orientación a objetos, pudiendo delegar a estos una estructura (propiedades o atributos) y unas acciones a realizar (funciones). Pues llega la hora de aplicar este conocimiento a javascript, donde muchos de nosotros solemos hacer una programación más lineal y poco estructurada, pero hay momentos que por su complejidad es necesario aplicar esta.

Vamos a ver unos ejemplos de programación orientada a objetos con JavaScript:

Clase con 2 atributos:

function Clase() {

this.Atributo1 = 0;
this.Atributo2 = ”;
}
var ObjetoDeTipoClase = new Clase();
ObjetoDeTipoClase.Atributo1 =1;
alert(ObjetoDeTipoClase.Atributo2);

 

Clase con 2 atributos y 2 funciones:

function Clase() {

this.Atributo1 = 0;
this.Atributo2 = ”;
this.Accion1=funtion(){
this.Atributo2+=”Accion sin parametros”;
}
this.Accion2=function(Parametro1){
this.Atributo1=2*3;
}
}
var ObjetoDeTipoClase = new Clase();
ObjetoDeTipoClase.Atributo1 =1;
alert(ObjetoDeTipoClase.Atributo2);

Clase estática:

var Gestor= {

Delete: function(Id) {
itemActual = new Clase();
itemActual.Accion2();
 }
}
Gestor.Delete(1);

Espero que estos ejemplos os sean de utilidad.

Un comentario en “Orientación a objetos con JavaScript”

  1. Hola,

    creo que en el segundo caso, estás declarando los métodos una vez por cada objeto que creas. Si se los añades al prototipo sólo existen una vez, y desde todos los objetos se llama al mismo código. Esto hay que tenerlo sobre todo en cuenta, si se añaden métodos dinamicamente o si es preciso una optimización máxima o si quieres hacer algo parecido a la herencia.

    function Clase() {
    this.Atributo1 = 0;
    this.Atributo2 = ”;
    }

    Clase.prototype.Accion1=funtion(){
    this.Atributo2+=”Accion sin parametros”;
    }

    Clase.prototype.Accion2=function(Parametro1){
    this.Atributo1=2*3;
    }

    var ObjetoDeTipoClase = new Clase();
    ObjetoDeTipoClase.Atributo1 =1;
    alert(ObjetoDeTipoClase.Atributo2);

    Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *