title: JavaScript simple call function behavior
body: <p>I want to ask about call function behavior. I get stuck every time when I try to understand <code>call</code> function.</p>
  <p>Can anybody help me to understand what is going on by suggesting implementation of the <code>find</code> method?</p>
  <pre class="lang-js prettyprint-override"><code>
  Hoge = function (val) {
    this.val = val;
    //console.log(&quot;this.val&quot; + this.val);
  };
  
  Hoge.prototype.find = function (callback) {
    callback.call(this.val);
  };
  
  var h = new Hoge(1);
  
  h.find((o) =&gt; { 
    console.log(o);  // expected 1 but undefined
    console.log(o === 1); // expected true but  its false (caz o is undefined)
  });
  
  </code></pre>