Что такое prototype в javascript?
По простому, это возможность использовать объект (ф-ию/переменную) "родителя" (прототипа) если нет своего объекта.
Например вы пытаетесь вызвать ф-ию form1.echoX(), т.к. её нет будет попытка вызвать form1.__proto__.echoX(), если этой нет то form1.__proto__.__proto__.echoX() и т.д.
Как "заполнять" прототип, можете найти в "любом" учебнике по JS, так же
@rock привел пример.