Definir propiedades de un objeto en JavaScript

ECMAScript 5 dispone de un par de APIs que nos permite afectar la forma como interactuamos con los objetos que creamos, permitiéndonos especificar getters y setters, evitar la enumeración de propiedades, eliminar propiedades, e incluso prevenir la extensión de objetos (adición/modificación de propiedades), es decir que podemos ejercer un mayor control sobre ellos.
Continue reading

Advertisements

Crear un objeto en JavaScript

Objetos en JavaScript

En un lenguaje de programación como JavaScript, un objeto consiste de pares clave : valor, lo que en otros lenguajes de programación conocemos como Hash o Dictionary. Para crear objetos en JavaScript, podemos hacerlo de diferentes maneras, ya sea a través de un Object Literal, mediante el método Object.create o por instanciación con el operador new.
Continue reading

Lazy Function Definition Pattern

Design Patterns Éste artículo tiene como fin dar a conocer uno de los patrones de diseño en JavaScript, el cual ha demostrado ser muy eficiente en escenarios en donde necesitamos inicializar objetos, o hacer que una función ejecute una acción sólo la primera vez que sea invocada, o almacenar resultados de operaciones que se efectúan con cada llamado a la función (Memoization)

Una de las ventajas que logramos al implementar éste patrón, es conseguir un mejor rendimiento ya que se puede reducir el costo computacional si mantenemos los datos en cache (mediante un closure), y además podemos lograr que sólo se carguen los objetos cuando sean requeridos (lazy load / lazy evaluation)

Continue reading

Closures en JavaScript

Closures
“Un closure es un tipo especial de objeto que combina dos cosas: una función, y el entorno en que se creó esa función. El entorno está compuesto por las variables locales que están dentro del scope en el momento en que el closure fue creado” — MDN. Es decir que una función definida dentro del closure recuerda el entorno donde se creó y tiene acceso a las variables de ese entorno (variables libres).

Continue reading

Bloqueo exclusivo (check out) de archivos en TFS Online

visual-studio logo
Team Foundation Service es un servicio con el cual podremos tener un control total, tanto online como en modo local, del código fuente de nuestros proyectos.

Al administrar el código fuente con Team Foundation Service (TFS en la nube) o Team Foundation Server, puede llegar a ocurrir, que un archivo en el cual estamos trabajando no sea bloqueado y por lo tanto, puede ser modificado simultáneamente por otros miembros del equipo, provocando un conflicto de versión al momento de subir los cambios (Check in)

Continue reading

Clonando objetos en JavaScript

Valores primitivos y objetos

Cuando programamos, es usual invocar funciones y pasar argumentos, sin embargo es posible que no conozcamos el manejo que le da JavaScript a esos parámetros, motivo por el cual a veces obtenemos resultados inesperados.

💡 Primero que todo vamos a aclarar los términos argumetos y parámetros:

  • argumetos hace referencia a los valores que le enviamos a una función.
  • parámetros hace referencia a los valores que recibe la función y son especificados en la firma de la función.
    // a y b son los parámetros de suma
    function suma (a, b) {
        return a + b;
    }

    var x = 5;

    // x y 8 son los argumentos enviados a suma
    var r = suma(x, 8);

⭐ Al enviar argumentos con valor primitivo (string, number, boolean, null, undefined), el parámetro de la función que recibe el valor crea una copia by value.
Esto significa que cualquier cambio que hagamos sobre ese parámetro, sólo será válido dentro de la función y no afectará al argumento original. Veamos el siguiente ejemplo:

Continue reading

¿Sabías esto de JavaScript?

JavaScript logo
JavaScript es un lenguaje de programación interpretado*, definido como orientado a objetos basado en prototipos (class-less), imperativo, débilmente tipado y dinámico.

JavaScript sigue algunos de los principios de la programación orientada a objetos, con un enfoque prototipado en donde los objetos ya existentes pueden servir de prototipo para los que se necesite crear. Además del paradigma OOP, JavaScript también permite trabajar el paradigma de programación funcional.

Características como funciones variádicas (número indefinido de parámetros en una función), tipos de datos dinámicos, hoisting, coerción, entre otros, hacen que JavaScript sea un lenguaje muy flexible y permisivo, por lo que es mejor conocer los principios del lenguaje para evitar cometer errores y caer en malas prácticas.
Continue reading