Ir al contenido principal

Destacado

C4 Model | Por una mejor comunicación

Introducción. Han pasado muchos años desde la introducción de UML en el ámbito del desarrollo de software, con la llegada de Agile , la forma de desarrollar software cambió drásticamente: algunos conceptos evolucionaron, aparecieron nuevos mientras que otros fueron abandonados. Hoy en día, UML es utilizado por contadas personas,  la propia industria ha dejado de lado aquellos elaborados diagramas,  recurriendo a diagramas genéricos o diagramas parciales, altamente variados entre sí, para representar y describir arquitecturas/diseños. Aquí es donde entra Simon Brown , quien identificó este problema de comunicación dentro de las organizaciones. Para solucionarlo, desarrolló el modelo C4 , un sistema de modelos, capaz de describir el software de manera clara y accesible, no solo para  los equipos de desarrollo y arquitectos sino para todo aquel interesado en comprender el funcionamiento y  estructura de un sistema . Modelo C4. El modelo C4 se basa en un c...

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