Javascript Schließung funktioniert nicht wie es sollte

siehe den ersten Code:

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

Wenn auf den Link geklickt wird, steigt die Zählervariable für jedes Linkelement weiter an. Dies ist das erwartete Ergebnis.

Zweite:

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

Hier funktioniert die Schließfunktion nicht wie erwartet. Bei jedem Klick auf das Absatzelement wird der Zählervar wird erhöht, aber dieses Inkrement wird beim Klicken auf das zweite Absatzelement nicht angezeigt? Was ist der Grund dafür? Warum passiert dies? Die Zählvariable erhöht sich nicht für jedes Absatzelement.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage