JavaScript - Problema con 'clases' en Javascript

 
Vista:

Problema con 'clases' en Javascript

Publicado por Pablete (4 intervenciones) el 04/03/2010 09:44:35
Hola, qué tal?

Pretendo algo tan simple como que en la caja de texto que hay en mi página vaya cambiando cada segundo su valor (n++).

Es decir, en el segundo 1, aparecerá 1, en el segundo 2, aparecerá 2…así hasta 10. Me da fallo la línea del setInterval…no llega a entrar en el método 'contar'. No sé porqué está mal.

Como veis está hecho como si fueran “clases” (de otra forma sí que me sale, pero quiero hacerlo de esta forma, con “clases”).

Dejo el código... Graciassss

<html>


<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<title>Prueba</title>

<script language="JavaScript">


function objeto()
{
this.n=0;
this.id=0;

this.prueba=prueba;
this.contar=contar;

//---------------------------------------------------------------------------------
function prueba()
{
//Aquí me da el fallo. No consigo ejecutar el método 'contar' desde dentro
//del setInterval:

this.id=setInterval("contar()",1000);
}

//---------------------------------------------------------------------------------

function contar()

{
//Pongo el alert para ver si entra en el método.
alert('Pasa por aquí');

this.n++;

document.getElementById('num').value=this.n;

if (this.n==10)
clearInterval(this.id);
}
//---------------------------------------------------------------------------------
}


</script>


</head>


<body>

<input type="text" size="20" id="num" value="1">


<script language="JavaScript">

//---------------------------------------------------------------------------------
var obj1=new objeto();
obj1.prueba();
//---------------------------------------------------------------------------------

</script>


</body>


</html>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

RE:Problema con 'clases' en Javascript

Publicado por ScriptShow (692 intervenciones) el 04/03/2010 11:54:31
Saludos,

prueba así:

<script language="JavaScript">

function objeto()
{
n=0;
t=0;

this.prueba=prueba;
this.contar=contar;
}

function prueba()
{
t=setInterval("contar()",1000);
}

function contar()
{
n++;
if (n==10)clearInterval(t);

document.getElementById('num').value=this.n;
}

</script>

<input type="text" size="20" id="num" value="">

<script language="JavaScript">

//---------------------------------------------------------------------------------
var obj1=new objeto();
obj1.prueba();
//---------------------------------------------------------------------------------

</script>

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con 'clases' en Javascript

Publicado por Pablete (4 intervenciones) el 04/03/2010 18:32:24
Funciona!! ... es una buena opción gracias...

Me sugirieron esta otra (funciona) por si a alguien le interesa:

<script language="JavaScript">

function objeto()
{
this.n=0;
this.id=0;
}

objeto.prototype = {
contar: function(){
this.n++;

document.getElementById('num').value="valor = " + this.n;

if (this.n==10)
clearInterval(this.id);
}
,
prueba: function(){
this.id=setInterval("obj1.contar()",1000);
}
}

</script>

<body>

<input type="text" size="20" id="num" value="1">


<script language="JavaScript">

var obj1=new objeto();
obj1.prueba();

</script>

Graciassss de nuevo !!!!!!
</body>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar