Orientación a objetos con JavaScript

Sin categoría

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.

También te puede interesar...

Artículos populares

1 Comentario

  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 *