Use closure to pass around local variables in the event handlers

@fmmm

by kanelbula

HTML

<a id="btn" href="#">CLICK ME</a>

CoffeeScript

# Use closure to pass around local variables in the event handlers

initialise = () ->
    myLocalVar = 'blablabla'
    $('#btn').on 'click', do (myLocalVar) => (event) =>
        event.preventDefault()            
        shout myLocalVar
    
    
shout = (value) ->
    alert value
    
    
do initialise
   


   
###
  JavaScript Output
###
"""
var initialise, shout;

initialise = function() {
  var myLocalVar,
    _this = this;
  myLocalVar = 'blablabla';
  return $('#btn').on('click', (function(myLocalVar) {
    return function(event) {
      event.preventDefault();
      return shout(myLocalVar);
    };
  })(myLocalVar));
};

shout = function(value) {
  return alert(value);
};

initialise();
"""