La compréhension de la variable de capture par les closures en Javascript/Nœud

Est-il une source précise sur la variable de capture en Javascript en dehors de la norme (c'est chiant à lire)?

Dans le code suivant i est copié par valeur:

for (var i = 0; i < 10; i++)
{
    (function (i)
    {
        process.nextTick(function ()
        {
            console.log(i)
        })
    }) (i)
}

De sorte qu'il imprime 1..10. process.nextTick est un analogue de setTimeout(f,0) dans le nœud.

Mais dans le prochain code que j'ai ne semble pas être copié:

for (var i = 0; i < 10; i++)
{
        var j = i
        process.nextTick(function ()
        {
            console.log(j)
        })
}

Il imprime 9 10 fois. Pourquoi? Je suis plus intéressé par une référence générale à l'article que dans l'explication de ce cas concret de capture.

InformationsquelleAutor nponeccop | 2012-04-10