Estudiando el diseño de jQuery paso a paso (II Parte)

Introducción

No tenía pensado hacer una continuación del anterior artículo ‘Estudiando el diseño de jQuery paso a paso‘ pero, a raíz de los comentarios de algunos usuarios, he visto interesante que continuemos profundizando en esta arquitectura para comprender mejor cómo construir nuestros propios frameworks o bibliotecas.

Aplicando métodos por referencia

Uno de los aspectos más interesantes en el uso de jQuery es la aplicación de sus métodos por referencia. Nosotros, en el ejercicio anterior, habíamos creado un objeto donde, para aplicar una funcionalidad concreta a una cadena, ésta se pasaba como argumento del correspondiente método:

$.trim('   Hola Mundo '); // Hola Mundo

Sin embargo, a la hora de trabajar con la API pública de nuestra biblioteca, resulta mucho más cómodo cuando la funcionalidad se aplica sobre un argumento asociado al objeto y no al método. Siguiendo el ejemplo anterior, la nueva propuesta de sintaxis sería:

$('  Hola Mundo   ').trim();

De este modo, ganamos en legibilidad a la vez que abrimos las puertas a otros comportamientos interesantes que veremos más adelante.
Seguir Leyendo…

Dentro de Javascript, jQuery | Etiquetas: , , , , , , | 22 Comentarios

Analizando el bucle for-in en Javascript

Introducción

El estamento for-in es uno de esos pocos incomprendidos en Javascript. Su papel principal es el de recorrer un objeto pasando por cada una de sus propiedades para actuar sobre ellas de alguna manera; sin embargo, dado que en Javascript los arrays son también objetos, podemos encontrarlo iterando por cada uno de los valores de estos últimos.

Se han escrito muchos artículos al respecto de este uso, sobre si es correcto o no, sobre el orden de enumeración obtenido, rendimiento, etc… Echemos un vistazo detenido a esta instrucción para ver cómo funciona con más detalle y corroborar o desmentir lo que sobre ella se dice.
Seguir Leyendo…

Dentro de Javascript, Sin categoría | Etiquetas: , , , , | 5 Comentarios

Estudiando el diseño de jQuery paso a paso

Introducción

Hace algún tiempo repasamos algunos de los patrones de diseño modulares más importantes que podemos encontrar actualmente en Javascript. Vimos el patrón del módulo tradicional, el revelado, el proxy y algunas variaciones.

Todas estas estructuras tienen como fin el agrupar una serie de bloques de código con funcionalidades compartidas permitiendo así su reutilización y portabilidad entre proyectos. Es por ejemplo el sistema con el que se articulan bibliotecas como jQuery, ZeptoJS o Mootools por ejemplo.

Gracias a estos patrones, podemos crear nuestros propios frameworks o aplicaciones cuyo código no interfiera con el de terceros. Se trata en definitiva de buenas prácticas que siempre es conveniente conocer.

Como cualquier otro patrón de diseño, la definición de estos módulos está sujeta a continua revisión y resulta frecuente encontrar variantes interesantes que mejoran su arquitectura base, su legibilidad, el rendimiento o cualquier otro parámetro ya sea mesurable o simplemente estético.

En esta ocasión, buscando nuevas reformulaciones, vamos a analizar el sistema que articula a la que posiblemente sea la biblioteca Javascript más popular en la actualidad: jQuery.

NOTA: A continuación analizaremos el código de la versión 1.6.3 de jQuery la cual es, durante la redacción de este artículo, la última disponible.
Seguir Leyendo…

Dentro de Javascript, jQuery | Etiquetas: , , , , , , | 12 Comentarios

Funciones declaradas VS Funciones expresadas en Javascript.

Introducción

Durante la última reunión del Grupo MadridJS, ha surgido un tema muy interesante en el que no había reparado anteriormente: qué diferencias existen entre crear una función mediante la notación tradicional (declarativas) o a través de una expresión. Un ejemplo de cada una de estas formas sería:

// FunctionDeclaration
function foo(){
  // Some code goes here...
}
 
// FunctionExpression
var foo = function(){
  // Some code goes here...
}

Otra forma de función expresada menos obvia que las anteriores es el caso de las funciones autoejecutables:

(function foo(){})(); // FunctionExpression

Esto es así porque el primer par de paréntesis crean de nuevo una expresión que luego se encarga de ejecutar el segundo.

A modo de resumen, tendríamos el siguiente cuadro:

  function foo(){} // declaration, since it's part of a Program
  var bar = function foo(){}; // expression, since it's part of an AssignmentExpression
 
  new function bar(){}; // expression, since it's part of a NewExpression
 
  (function(){
    function bar(){} // declaration, since it's part of a FunctionBody
  })();

Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , , , | 9 Comentarios

Cómo obtener el tipo de datos preciso de una variable en Javascript

Introducción

Una de las características del lenguaje Javascript más controvertidas es su tipado blando o dinámico del que ya hemos hablado en alguna ocasión. Esto significa que, a diferencia de otros lenguajes clásicos como C o Java, cuando declaramos variables no necesitamos especificar el tipo de datos que contendrán. Es más, una misma variable, puede poseer varios tipos diferentes en distintos momentos de ejecución: puede comenzar siendo un entero, pasar a ser un array y más adelante, por ejemplo, acabar siendo un objeto.

Esta flexibilidad tiene ventajas muy interesantes para el desarrollo de aplicaciones complejas ya que no existen a priori limitaciones en cuanto a lo que una variable puede almacenar. Sin embargo, para aquellos que provienen de otros lenguajes de tipado duro, uno de los problemas de este concepto es que resulta muy difícil identificar el tipo de datos concreto que una variable posee en un momento dado de la ejecución. Seguir Leyendo…

Dentro de Javascript | Etiquetas: , , , , | 5 Comentarios
Página 10 de 35Primera...89101112...2030...Última
Licencia Creative Commons 3.0

®Copyright 2016. Cotenido web bajo licencia Creative Commons 3.0

Códigos bajo licencias MIT y GPL. Ver página de licencias para más información