Why does 'call()' add properties to the Function's instance?? (see small code)
<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>
