Ir al contenido principal

Destacado

Node | Debug nestjs app en vscode

Recientemente me encontré trabajando en un proyecto basado en nestjs y una cosa que me sorprendió fue la cantidad de console.log distribuidos por todo el repositorio, señal de que el equipo lo usaba como su principal forma de depurar. Un poco old school para mí gusto para ser sincero, así que, ¿Por qué no usar vscode a tu favor? La siguiente configuración ademas de correr la app,  enlaza  el debugger al proceso node. En MacOS:   Ejecutar > Agregar configuración... Listo, ya podemos poner breakpoints en donde lo requiramos, sencillo no? C you space cowboy!

JavaScript | Contexto de funciones.



Hola a todos,hoy voy a redactar algo sobre el contexto de las funciones en términos de javascript.

Todas las funciones en JavaScript están ligadas a un objeto en particular, incluso aquellas que definamos directamente en el scope global. Este objeto es el que determina dicho contexto, en otras palabras, el contexto de una función está definido por el objeto del cuál forman parte y es accesible a través de la propiedad this 

¿Confuso?, veamos el siguiente ejemplo:
(function contextTest()
{
    this.myVar = 'Test';
})();

alert(window.myVar);
    
Si ejecutamos el código anterior veremos que myVar está disponible en el objeto window y su valor es 'Test'. Si recuerdan les mencione que las funciones definidas en el scope global también están ligadas a un objeto... exacto!!! el objeto window es el contexto de estas funciones. Cambiemos un poco el ejemplo.
   
function contextTest()
{
    if(this==window)
        alert('EL objeto window es mi contexto');
};

contextTest();
Ahora sí, un poco más claro. Veamos otro ejemplo:
    

var util = {
    myName:'', 
    test:function()
    {
        if(this==window)
        {
            alert('El objeto window es mi contexto.'); 
        }else
             alert('El objeto window ya no es mi contexto.'); 
    }
};

util.test();  
Ejecutando el código vemos que this dentro de la función test ya no hace referencia al objeto window, ahora this es una instancia de nuestro objeto util.

De esta forma podemos hacer lo siguiente:
    
var util = {
    myName:'', 
    test:function()
    {
         this.myName = 'instancia de util';
    }
};
     
util.test();  
alert(util.myName);
Espero haya quedado un poco más claro. En la siguiente entrada veremos como cambiar el contexto a nuestro antojo.

 Saludos.

Comentarios

Entradas populares