Hola a todos. Dejo mi respuesta y mi código para el ejercicio CU01168E del curso práctico de desarrollo web con JavaScript. Gracias. Un saludo.
Respuesta a):
Como hay dos funciones y una es interna a la otra, los ámbitos pueden ser diferentes. El primer this se refiere al objeto cabecera mientras que el segundo this se refiere al objeto window, o sea el segundo this puede hacer referencia a otro ámbito, como así ocurre.
Respuesta b) código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<script type="text/javascript">
function ejemplo() {
var cabecera = document.querySelector('#cabecera');
var respuestaCabecera = function () {
var that=this;
alert(this);
setTimeout(function () { alert(that);}, 2000);
};
cabecera.addEventListener('click', respuestaCabecera, false);
}
</script>
</head>
<body onload="ejemplo()">
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com HAZ CLICK AQUÍ</h2>
<h3>Ejemplos JavaScript</h3>
</div>
</body>
</html>