El cierre de javascript no funciona como debería

ver el primer código:

 var count = 0;
 (function addLinks() {
   var count = 0;//this count var is increasing

   for (var i = 0, link; i < 5; i++) {
     link = document.createElement("a");
     link.innerHTML = "Link " + i;

     link.onclick = function () {
       count++;
       alert(count);
     };

     document.body.appendChild(link);
   }
 })();

Cuando se hace clic en el enlace, la variable del contador continúa aumentando para cada elemento del enlace. Este es el resultado esperado.

Segundo:

var count = 0;
$("p").each(function () {
  var $thisParagraph = $(this);
  var count = 0;//this count var is increasing too.so what is different between them .They both are declared within the scope in which closure was declared

  $thisParagraph.click(function () {
    count++;
    $thisParagraph.find("span").text('clicks: ' + count);
    $thisParagraph.toggleClass("highlight", count % 3 == 0);
  });
});

Aquí la función de cierre no está funcionando como se esperaba. En cada clic en el elemento de párrafo, el contadorvar ¿Se incrementa pero ese incremento no se muestra al hacer clic en el elemento del segundo párrafo? ¿Cuál es la razón para esto? ¿Por qué está pasando esto? La variable de conteo no aumenta para cada elemento de párrafo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta