Category: javascript

js magic warning

Bueno, mi primer post aqui será sobre mi querido javascript. Javascript es un lenguaje bastante divertido, con mucha magia, pero como dijo un heroe, “un gran poder significa una gran responsabilidad.”, y he aquí una historia que me sucedió hoy, supongamos que tenemos un inofensivo método, este método puede pasarse como callback, de modo que pasaremos la funcionalidad de un lado a otro. Veamos un ejemplo:

var log = function(a) { console.log(a); };
function myFunc() {
  log('paso 1');
  // ...
  log('paso 2');
  // ...
}

Bien, sí, esto funcionará como esperamos, y la salida sería:

paso 1
paso 2

Perfecto, pero que pasa si en lugar de definir: log = function(a) { console.log(a); }, definieramos: log = console.log ..? Bueno, la realidad es poco fiable, resulta que chrome nos dirá: TypeError: Illegal invocation al momento de invocar log('...');, pero por el contrario, node.js nos acepta el truco y hace justo lo que queremos. Pero esto no es todo, veamos el siguiente ejemplo: Continue reading