Lo siento, pero tu idea no me vale porque sólo es válida para un único objeto de la clase coche_object, en concreto el objeto llamado coche. ¿Cómo harías esto?
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script language="JavaScript1.2" type="text/javascript">
function coche_object (vel)
{
this.velocidad = vel;
this.timeOut = null;
this.frena = function ()
{
if(coche.velocidad > 0)
{
coche.velocidad--;
setTimeout("coche.frena()", 100);
}
else
{
if (coche.velocidad == 0)
{
alert ("Hemos frenado del todo");
}
}
document.getElementById("laCaja").value=this.velocidad;
}
}
var coche = new coche_object (50);
var coche2=new coche_object(30);
</script>
</head>
<body>
<a href="javascript:coche2.frena()">Pulsame</a>
<input type="text" id="laCaja" />
</body>
</html>
No puedes frenar el coche2 salvo en la primera unidad porque el timeout llama al método del objeto coche, no de coche2. No es una funcion generica, es solamente para el objeto coche
Si te fijas en mi ejemplo se puede hacer con varios objetos independientemente de su nombre; te despreocupas. La idea sigue siendo poner el objeto en una variable global.
Por cierto la linea de
Código PHP:
clearInterval(coche.timeOut);
la he quitado porque un timeout no se puede cortar con un clearInterval, un timeout sólo ejecuta la funcion una vez, y un interval la ejecuta indefinidamente.
saludos y gracias por responder.