title: Can anyone please tell me why an object's function expression makes use of 'this' keyword to access the object's member variables?
body: <p>For instance, consider the code snippet :</p>
  <pre><code>var john=
  {  fullname: 'john smith',
    bill:[124,48,268,180,42],
    tip:[],final:[],
    calcTip:function()
    {
      for(var i =0;i&lt;this.bill.length;i++)
      {
        if(this.bill[i]&lt;50)
        this.tip[i]=0.2*this.bill[i];
        else
        this.tip[i]=0.1*this.bill[i];
        this.final[i]=this.tip[i]+this.bill[i];
      }
    }
  };
  </code></pre>
  <p>I tried skipping the usage of 'this' to access array members of bill and this was the output that it produced :</p>
  <hr />
  <p>Uncaught ReferenceError: bill is not defined</p>