title: Callback can not be invoked properly, if the parameter is a bound function
body: <p>When a function expects a callback as a param, I suppose it make sense to provide a bound function like this</p>
  
  <pre><code>function invokeCb(cb){
      cb();
  }
  function test(x){
      console.log(x)
  }
  const para="xyz";
  
  invokeCb(test.bind(null,para)) //(1)
  invokeCb(()=&gt;{test(para)}) //(2)
  </code></pre>
  
  <p>I can not see anything wrong with <code>(1)</code>. However, when it come to real world, I encounter some unexpected behaviour</p>
  
  <p>Here is a example, in <code>redux</code></p>
  
  <pre><code>store.subscribe(
      ()=&gt;{(saveState.bind(null,store.getState()))()}
  )
  </code></pre>
  
  <p>can work while</p>
  
  <pre><code>store.subscribe(saveState.bind(null,store.getState()))
  </code></pre>
  
  <p>can not correctly, i.e. the <code>store.getState()</code> seems never invoked properly</p>
  
  <p>If you need more context. Here:<a href="https://egghead.io/lessons/javascript-redux-persisting-the-state-to-the-local-storage" rel="nofollow noreferrer">https://egghead.io/lessons/javascript-redux-persisting-the-state-to-the-local-storage</a></p>
  
  <p>Maybe I missed some subtle differences between the two form, can anyone point it out? </p>