2011-03-14 9 views
19

Estoy leyendo la documentación de la biblioteca Underscore.js de DocumentCloud. Muchas de las funciones toman un argumento opcional context que no se explica. Mi suposición, como alguien familiarizado con Ruby es que esto es similar a un Ruby binding. Y que tiene algo que ver con lo que significa this. El alcance de mi uso de JavaScript ha sido unas pocas llamadas jQuery y algunas muy repetidas ajax.En la biblioteca Underscore.js de JavaScript, ¿qué significa "contexto" y cómo lo uso?

Mi pregunta: ¿Qué significa context y cómo debería usarlo? Una buena respuesta probablemente también contenga información sobre cómo funciona JavaScript.

Respuesta

13

Las funciones de Javascript tienen un parámetro this oculto que indica el contexto en el que se llamó a la función.

Por lo general, this es el objeto global (generalmente window). Sin embargo, cuando se invoca una función en un objeto, this será el objeto sobre el que se invocó.

Los métodos Underscore.js que toman las funciones de devolución de llamada toman un parámetro opcional context. Si se especifica este parámetro, se llamará a la devolución de llamada con ese context, lo que significa que this dentro de la devolución de llamada será igual al contexto.

+3

Responde la primera parte de la pregunta. Ahora, ¿cuándo debería usar esta habilidad y a qué debería configurar 'this'? O, para decirlo de otra manera, ¿es algo que se usa tan poco que debería ignorarlo a menos que aparezca en el código de otra persona? –

+0

@John: es útil si está pasando una función miembro de su propio objeto que debe llamarse en contexto. – SLaks

+0

@SLaks: ¿Puede proporcionar un ejemplo concreto de 'context' utilizado? – jkndrkn

Cuestiones relacionadas