Foros del Web » Programando para Internet » Javascript »

Problema con OOP, creacion de clases

Estas en el tema de Problema con OOP, creacion de clases en el foro de Javascript en Foros del Web. Hola a todos, estoy empezando a trastear con clases en Javascript y la verdad es que me esta costando mas de lo que yo pensaba. ...
  #1 (permalink)  
Antiguo 11/09/2009, 14:57
 
Fecha de Ingreso: diciembre-2005
Mensajes: 92
Antigüedad: 19 años
Puntos: 0
Problema con OOP, creacion de clases

Hola a todos, estoy empezando a trastear con clases en Javascript y la verdad es que me esta costando mas de lo que yo pensaba.

La idea es crear una clase tabla con varios metodos o funciones como (creartabla,insertarfila,borrarfila).El codigo que tengo hasta ahora es el siguiente:

Código:
function tabla(){ 		
			this.a = function (){alert("hjgjgjgjhg");}
			this.creaTabla=function (iFilas,iColumnas,sName){
				this.filas=iFilas;
				this.columnas=iColumnas;
				this.sName=sName;
				oTabla = null;
				oTbody = null;
				oTabla = document.createElement("table");
				oTbody = document.createElement("tbody");
				oTbody.setAttribute("id","tbody"+sName);
				oTbody.setAttribute("name","tbody"+sName);
				oTabla.setAttribute("id","tabla"+sName);
				oTabla.setAttribute("name","tabla"+sName);
				oTabla.appendChild(oTbody);
					//Creo las filas
					for (i=0;i<=this.filas-1;i++){			
					oTbody.insertRow(i);
						for(j=0;j<=this.columnas-1;j++){
						oTbody.rows[i].insertCell(j);			
						}
					}
					
					//averiguo el numero de argumentos opcionales y pongo los atributos de la tabla
					for(i=3;i<=((arguments.length - 2));i++) {		
						oTabla.setAttribute (arguments[i],arguments[i+1]);	
					i++;
					}
					return oTabla;			
				}
			this.creaFila=function();
                        this.borraFila=function();
y lo llamo de la siguiente manera:
Código:
var otablas = new tabla();
		otablas.a();
		otablas =tabla.creaTabla(2,2,'prueba','border',1,'cellPadding',0,'cellSpacing',0,'align','center');
		
	}
El problema que me indica Firebug todo el rato es que tabla.creaTabla is not a function y de hay no lo saco.

Solo quiero aprender un poco OOP para ver si me interesa utilizar objetos o no. espero que descubrais donde fallo y si me podeis aconsejar como funcionar con OOP pues mejor ya que he visto que hay varias maneras como por ejemplo declarar la clase en una variable, algo asi:

Código:
var objeto = function tabla(){ ... y aqui el resto de la clase}
  #2 (permalink)  
Antiguo 11/09/2009, 15:17
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 8 meses
Puntos: 1485
Respuesta: Problema con OOP, creacion de clases

cuando se crean las clases (sepase que javascript no tiene clases), para operar con ellas tienes que crear instancias. luego, a partir de la instancia usas los metodos y propiedades. o sea, el problema realmente lo tiene en lo siguiente.
Código:
var otablas = new tabla();
otablas.a();
otablas =tabla.creaTabla(2,2,'prueba','border',1,'cellPadding',0,'cellSpacing',0,'align','center');
fijate en la parte en negrita. tabla es la funcion que opera como clase pero no tiene definido el metodo creaTabla. sino que es la instancia otablas quien tiene el metodo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:37.