2011-01-19 10 views
9

estoy leyendo a través del código fuente de jQuery UI (interfaz de usuario de diálogo específicamente), veo este patrón repetido muchas veces:jQuery UI Design patrón de la pregunta

var self = this, 
     options = self.options, 
     uiDialog = self.uiDialog; 

¿cuál es el razonamiento detrás de este patrón de, var self = this, something, something else

Respuesta

5

Asignar self ayuda con problemas de alcance - el significado de this puede cambiar a lo largo de la secuencia de comandos, self siempre mantendrá la referencia a la instancia. Otras formas comunes son that y base.

La coma permite escribir var solo una vez delante de las definiciones de las variables.

var self = this, 
    options = self.options, 
    uiDialog = self.uiDialog; 

es lo mismo que

var self = this; 
var options = self.options; 
var uiDialog = self.uiDialog; 
+0

"La coma permite escribir var una sola vez en frente de las definiciones de variables". Ahh, de eso se trata. – SooDesuNe

8

es sólo almacenamiento en caché las variables & & propertys obect. Esto en general se considera una muy buena práctica ya que las búsquedas de objetos tienen un costo.

window.href 

toma mucho más tiempo que

var myhref = window.href; 
myhref; 

Por supuesto que necesita para realizar la llamada cara una vez, pero todas las llamadas posteriores a la variable en caché son mucho más rápido.

Otra razón para usar este patrón es guardar en caché DOM node references por más o menos las mismas razones. Acceder al DOM es una de las cosas más caras que puede hacer en Javascript (en un navegador). Así que al almacenar referencias en el caché, simplemente aumenta su código.