title: arrow function inside an object literal
body: <p>i have this object literal</p>
  
  <pre><code>let p = {
      name : 'Amir',
      say: () =&gt; {
          console.log(this.name)
          console.log(this)
      }
  }
  </code></pre>
  
  <p>and I want the say function works using this </p>
  
  <pre><code>p.say();
  </code></pre>
  
  <p>but the arrow function obviously gets the window object as <code>'this'</code>. I know I could use a regular function for <code>'say'</code> instead of arrow and it will work fine.</p>
  
  <p>BUT
  I would like to ONLY change the call to say function to make it work, but the binding won't work.
  I mean something like <code>p.say.bind(p)()</code>  or <code>p.say.call(p)</code> aint gonna work as desired.
  Is  it possible to change the call to function ONLY and not the say function?</p>