En JavaScript, ¿qué función cumple la palabra clave this? ¿Por defecto qué contexto de ejecución tiene según donde se usa? ¿El contexto de ejecución varía si usamos la directiva use strict?
La palabra clave this se utiliza en JavaScript para referirse al objeto que está ejecutando el código en ese momento. El valor de this se determina durante la ejecución y puede cambiar dependiendo del contexto.

Por defecto, el contexto de la ejecución de this viene determinado por cómo se invoca una función. Cuando se hace referencia a una función como método de un objeto, this se refiere al objeto que contiene la función. Si se hace referencia a una función como una función normal, this se refiere al objeto global (el objeto window en un navegador o el objeto global en Node.js).
¿Qué diferencias tiene con su implementación en C#?
En C#, la palabra clave this se usa para hacer referencia al objeto actual. En un contexto de instancia, this se refiere a la instancia de la clase en la que se encuentra el código en ese momento. En un contexto estático, this se refiere al tipo de clase en el que se encuentra el código.



En JavaScript, la palabra clave this no se limita a los objetos de clase, sino que se puede usar para referirse a cualquier objeto en el contexto de ejecución actual. Esto significa que this puede referirse a diferentes objetos dependiendo de cómo se invoca una función.



La directiva use strict no cambia el contexto de ejecución de this. En lugar de eso, establece una serie de reglas para el uso de this que buscan evitar errores comunes. Por ejemplo, use strict exige que this no se vincule a un valor predeterminado si no se ha especificado de otra manera.