JSFiddle - React, Tailwind, and code Playground

by Michael Seifert

JavaScript

var animals = [
    	{name: 'fluffy', species: 'dog'}, 
      {name: 'miauw', species: 'cat'},
      {name: 'lunski', species: 'dog'}
      ];

    var dogs = [];
    for (var i = 0; i < animals.length; i++) {
      if (animals[i].species === 'dog') {
        e = document.createElement("input");
            e.value = animals[i].name + " (no closure)" ;
            e.addEventListener('click', function() {
              console.log(animals[i])}
            )
        document.body.appendChild(e);
      
      
        e = document.createElement("input");
        e.value = animals[i].name + " (with closure)" ;;
        !function(animals, i){
            e.addEventListener('click', function() {
              console.log(animals[i])}
            )
         }(animals, i)
        document.body.appendChild(e);
      }
    };