Convertir variables globales en locales

Para ganar en eficiencia con JavaScript podemos hacer que una variable global se convierta en local.

Supongamos que tenemos una función que concatene el texto que hay en dos <span> pasando como argumentos sus atributos IDs.

Lo tipico seria:

function concatenarTextoDosSpan(spanId1,spanId2){
  var texto = document.getElementById(spanId1).innerHTML;
  texto += document.getElementById(spanId2).innerHTML;
  return texto;
}

Todo bien, pero hemos hecho referencia dos veces a document, que pertenece al scope global. Y JavaScript tendría que saltar hasta ahi para llegar al document. En cambio si almacenamos document en una variable de ambito local nos ahorraríamos esos saltos.

function concatenarTextoDosSpan(spanId1,spanId2){
  var d = document;
  var texto = d.getElementById(spanId1).innerHTML;
  texto += d.getElementById(spanId2).innerHTML;
  return texto;
}

Ademas de mejorar la eficiencia tendremos que teclear menos.

Nota: No olvidar la palabra reservada var ya que si no lo ponemos, la variable se convierte en global. Esto se suele ver el bucles for en los que se hace:

for ( i=0; i < loQueSea.length;  i++ ) {
    //código
}

Y de repente la variable i se ha convertido en global. Y en cada iteración JavaScript tiene que saltar por la pila hasta llegar al scope global. Una gracia, vaya, sobre todo si el length es muy alto.

Convertir variables globales en locales

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s