title: Proper way to create custom JS Method
body: <p>Just a small Prototypical Inheritance question<br>
  Recently I was trying to create a custom Method jut like e.g: JS's <code>.toUpperCase()</code> and other methods... that uses the <code>this</code> reference from the prefixed object.</p>
  
  <p>And it works nice <sup>(stupid usless example)</sup> :</p>
  
  <pre><code>Object.prototype.customMethod = function(){
      return this.toLowerCase() ; 
  };
  </code></pre>
  
  <p>And can be used like:</p>
  
  <pre><code>// access some object and get a key value
  member.name; // JOHN
  // use custom Method
  member.name.customMethod(); // john
  </code></pre>
  
  <p>The issue is that seems like the Method <code>.customMethod()</code> inherits globally every <code>Object</code>.<br> <strong>How to make it less intrusive and be referenced to the prefixed object only? or at all?</strong></p>
  
  <p>Here is an example: <strong><a href="http://jsbin.com/evaneg/2/edit" rel="nofollow">http://jsbin.com/evaneg/2/edit</a></strong></p>
  
  <pre><code>// CREATE OBJECT
  var obj = { "text" : "Hi" };
  
  // TEST OBJECT KEY VALUE
  alert( "OBJECT TEXT: "+ obj.text );     // Hi
  
  
  // CREATE CUSTOM METHOD ( just like e.g. JS's .toUpperCase() method )
  Object.prototype.addText = function(){ 
    return this+' there!';  
  };
  
  // USE CUSTOM .addText() METHOD
  alert( "OBJECT TEXT+method: "+obj.text.addText() ); // Hi there! // wow, the method works!
  
  
  for(var key in obj){
    alert( 'obj KEYS: '+ key ); // text // addText
  }
  
  // hmm... addText method as obj Key ???
  // ok let's try with a new one...
  
  var foobee = { "foo" : "bee" };
  
  for(var key in foobee){
    alert( 'foobee KEYS: '+ key ); // foo // addText
  }
  
  // addText  ...again... but why?
  </code></pre>
  
  <p>I read also this <a href="http://javascript.crockford.com/prototypal.html" rel="nofollow">http://javascript.crockford.com/prototypal.html</a> and lots of other similar things here on SOverflow but most of them focus on the use of creating a <code>new F( arguments )</code> that use specific arguments, which is not my case. Thanks for any explanation</p>