title: Defining private variables in prototype that are not shared among children and other prototyping tricks
body: <p>I want private variables to be constructed for each child and not shared. (That's the minimum I need...)</p>
  
  <pre><code>function AbstractClass(){
  
  var private_var; // not shared
  // todo : how to create a static(shared) variable?
  
  this.virtual_method = function(){};
  
  this.some_fun = function(){
     console.log(private_var);
  }
  // todo : how to access static(shared) variable?
  
  }
  </code></pre>
  
  <p>this base abstract class should be convenient enough for constructing many children out of it</p>
  
  <pre><code>function Child1(param){
      private_var = param;
  
      this.virtual_method = function(){alert('child1');}; //redefining
  
      this.some_fun();
  
  }
  
  
  var first_child = new Child1(5); //console : 5
  
  var second_child = new Child1(16); //console : 16
  
  first_child.some_fun() //console : 5;
  
  second_child.some_fun() //console : 16;
  
  fist_child.virtual_method();  // alert
  </code></pre>
  
  <p>Please help me... I need some working code to be a guide for me</p>