Hola
miguelcubas
Verás, creo que te estás confundiendo un poco con lo que representa
this. Dentro de un objeto,
this se refiere directamente a ese objeto. Por eso en la función
Initia(),
this se refiere a
pruobj.
Pero ocurre que en los eventos,
this toma otro carácter. En los eventos
this funciona como una referencia al objeto que ha producido tal evento. En tu caso, si el evento es
onclick y el objeto es
document, un
this dentro del manejador del evento
document.onclick referenciará a
document. Simple y llanamente.
Te he puesto un ejemplo para que lo veas bien:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>D</title>
<script type="text/javascript">
var pruobj = {
texto: null,
Initia:function() {
//this se refiere a pruobj
this.texto = "hola (pruobj)";
document.texto = "hola (document)";
document.onclick = this.alerta;
},
alerta:function() {
//this se refiere a document (objeto sobre el que se ha hecho click)
alert("this.texto = document.texto = "+document.texto +" = "+this.texto);
alert("pruobj.texto = "+pruobj.texto);
}
}
/*
// El onclick de document equivale a poner en cualquier zona del documento:
document.onclick = function() {
alert(this.texto); // this = document (objeto sobre el que se ha hecho click)
}
*/
</script>
</head>
<body onload="pruobj.Initia();">
</body>
</html>
Espero que así te aclares.
Un saludo.