title: CoffeeScript scope issues with an array of functions
body: <p>CoffeeScript newbie here. I'm having a weird problem with the scope of a function that I've pushed onto an array and then executed within the class's member function. Basically, it seems like <code>this</code> isn't getting set correctly.</p>
  
  <pre><code>class TestClass
      constructor: -&gt;
          @functions = [] # my array of functions
          @member = "hello there! come find me!"
      update: =&gt;
          func() for func in @functions
  
  testClass = new TestClass
  testClass.functions.push( -&gt; 
      str = "could i find @member? " + @member? + "; this's keys: " + Object.keys(this)
      console.log(str)
  )
  testClass.update()
  </code></pre>
  
  <p>The result? Strangely enough, it's:</p>
  
  <pre><code>could i find @member? false; this's keys: 
  top,location,window,external,chrome,v8Locale,document,$,jQuery,CoffeeScript
  </code></pre>
  
  <p>It seems like the context in which the function is being called is wrong. I thought that by pushing a skinny-arrow function onto my array, when that function is called it would adopt the context in which it is called (<code>update</code>, where <code>this</code> is the <code>testClass</code>)
  Everything works just fine if I do:</p>
  
  <pre><code>    update: =&gt;
          func.call(this) for func in @functions
  </code></pre>
  
  <p>but that doesn't seem very CoffeeScript idiomatic.</p>