закрытие javascript не работает должным образом

увидеть первый код:

 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);
   }
 })();

Когда ссылка нажата, переменная counter увеличивается для каждого элемента ссылки. Это ожидаемый результат.

Во-вторых:

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);
  });
});

Здесь функция закрытия работает не так, как ожидалось. При каждом нажатии на элемент абзаца, счетчикvar увеличивается, но это приращение не отображается при нажатии на элементе второго абзаца? Что является причиной этого? Почему это происходит? Переменная count не увеличивается для каждого элемента абзаца.

Ответы на вопрос(1)

Ваш ответ на вопрос