Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/09/2009, 14:57
pepepercebe
 
Fecha de Ingreso: diciembre-2005
Mensajes: 92
Antigüedad: 19 años, 2 meses
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}