Comunidad de diseño web y desarrollo en internet online

Consulta sobre prototype

Citar            
MensajeEscrito el 12 Dic 2014 07:09 pm
He escrito un poco de Javascript y las siguientes líneas son un fragmento:

Código Javascript :

// Creo una "clase" llamada Escenario
function Escenario(infoResiduos) 
{
    this.infoResiduos = infoResiduos;
}
 
// Declaro una función allReady que me indique si las imágenes han sido cargadas para poder dibujarlas luego a todas juntas
Escenario.prototype.allReady = function() 
{    // Verificar si todos los residuos se han cargado.
    for(i=0; i<this.infoResiduos.length; ++i)
        if( ! residuos[ this.infoResiduos[i].r ].ready )
            return false;
    return true;
}    
 
// Se intenta graficar, pero antes se asegura de que si no está todo listo aborte la operación.
Escenario.prototype.graficar = function() 
{
    if( ! this.allReady() ) return;
    for(i=0; i<this.infoResiduos.length; ++i)
        residuos[this.infoResiduos[i].r].graficar();        
}


Obtengo un error en la línea:

Código Javascript :

if( ! this.allReady() ) return;

Indicándome "undefined is not a function". ¿A qué se deberá?
Yo he intentado hacer lo siguiente desde la consola de Chrome y funciona sin problemas:

Código Javascript :

var Recurso = function() {}
Recurso.prototype.funcA = function() { console.log("hola"); }
Recurso.funcA(); // no funciona porque no es método estático, eso es bueno
var obj = new Recurso();
obj.funcA(); // imprime hola
Recurso.prototype.funcB() = function() { this.funcA(); }
obj.funcB(); // imprime hola


Esto último equivale a lo que intento hacer en el fragmento de arriba, ¿qué ocurre entonces?
Espero que puedan ayudarme, gracias de antemano.

Por Masakre

7 de clabLevel



 

chrome
Citar            
MensajeEscrito el 15 Dic 2014 03:39 pm
Pues no es lo mismo lo de abajo que lo de arriba.

Ahora el código de arriba está bien, pues no arroja ningun error. Mi pregunta es ¿Como lo estas llamando / ejecutando?

Yo realize :

Código :

var myObject = new Escenario([]); //ingreso un arreglo vacio por que no me indicas que se debe ingresar

myObject.allready();

myObject.graficar();


Obviamente como no tengo el dato que quieres procesar no puedo saber cual es tu error. Saludos.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.