ESEMPIO:
codice:
<script>
Element.prototype.myFoo = function() {
    console.log(this.form.name);


};
</script>

Allora.. Se chiamo il Prototype su this:
codice:
<form id="myform_1" name="myformname_1" method="POST" action="">
    <input type="text" id="pippolo" name="pippoloname" value="PRIMO">
    <div id="msg1" name="msgname1">MSG 1</div>    
    <button type="button" id="mybtn"  name="mybtn" onclick="this.myFoo();">TEST 1</button>
</form>
Mi stampa "myformname_1" (cioè il name del form a cui appartiene il button)


Ma, se provo a chiamarlo su un elemento diverso da this:
codice:
<form id="myform_1" name="myformname_1" method="POST" action="">
    <input type="text" id="pippolo" name="pippoloname" value="PRIMO">
    <div id="msg1" name="msgname1">MSG 1</div>    
    <button type="button" id="mybtn"  name="mybtn"  onclick="document.getElementById('myform_1').myFoo();">TEST 1</button>
</form>

Ottengo:
codice:
Uncaught TypeError: Cannot read property 'name' of undefined

Perchè il prototype funziona solo con l'elemento this ??

Grazie a tutti!