Sí, con tu comentario entiendo lo que quieres decir 🙂
Entonces, este no es tanto problema de cierres, sino más bien un problema con el contexto. Estoy de acuerdo en que “esta” palabra clave se comporta de forma poco intuitiva. Hablemos de eso.
En palabras simples …
- Cómo encontrar el editor de un sitio web
- Cómo crear un servidor dedicado para alojar un sitio web y una base de datos a la que deben acceder varias personas de forma remota
- ¿Qué marco es bueno para iniciar una aplicación web 2011?
- ¿Qué hace a un excelente desarrollador web? ¿Qué cualidades buscan las personas en su personal, consultores y contratistas independientes cuando contratan a un desarrollador web para construir un sitio web?
- ¿Cuál es la mejor arquitectura Angular 2 para proyectos en Visual Studio?
El contexto es un “objeto” con el que puede trabajar (actualizarlo, eliminarlo, etc.) con métodos. Es referenciable
El alcance es un objeto abstracto. No puede llamar a “scope.property” porque el alcance es solo un espacio asignado en la memoria, al que no puede hacer referencia directamente.
Al adjuntar una función a un objeto, dentro de esa función “esto” es un objeto al que se adjunta la función.
Si declara una función y no la vincula directamente a un objeto, su contexto es un objeto “global” (también conocido como ventana).
Por ejemplo, en su comentario, la función interna simplemente está flotando dentro de un alcance de la función externa, pero no está “adjunta” (la palabra correcta está vinculada) a ningún objeto.
¿Es esta respuesta suficiente para ti? Si no, recomendaría JavaScript: Comprender las partes extrañas: las primeras 3.5 horas