title: Why does 'call()' add properties to the Function's instance?? (see small code)
body: <p>Why is it that just by using <code>call</code> you're adding properties to the <code>Employee</code> instance named <code>jc</code>?</p>
  
  <p>I'm wondering why <code>jc.hasOwnProperty('firstName');</code> results to <code>true</code>.</p>
  
  <p>I didn't even do <code>prototype</code> inheritance yet. This is all the code, no more no less:</p>
  
  <p>I understand that <code>call</code> just changes the <code>this</code> while passing in arguments, but to add properties? I don't know what's going on...</p>
  
  <pre><code>function Person(firstName, lastName){
    this.firstName = firstName;
    this.lastName = lastName;
  }
  function Employee(firstName, lastName, position){
    Person.call(this,firstName,lastName);
    this.position = position;
  }
  var jc = new Employee('JC','Viray','Developer');
  jc.hasOwnProperty('firstName'); //true
  </code></pre>
  
  <p><strong>UPDATE</strong></p>
  
  <p>I get it now.. the solution to my problem is:
  <strong>stop thinking in C#/Java mentality</strong>.. I lost track that <code>Person</code> is <strong>still</strong> a <code>FUNCTION</code> despite it being a "constructor type function"...  -_- once a function, still a function..</p>