ну так это не лучший вариант как там объяснено. Смысл в том, что на основе свойства prototype функции будут созаваться объекты. Т.е. после
var rabbit = new Rabbit();
rabbit.[[prototype]] (в браузерах оно реализовано как rabbit.__proto__) будет ссылаться на созданный объект Animal
function Animal(){}
function Rabbit(){}
Rabbit.prototype = new Animal();
Rabbit.prototype.prop = 2; // только не надо так в real life делать
rabbit = new Rabbit();
alert(rabbit.__proto__ instanceof Animal); // работает в ff, opera
alert(rabbit.__proto__ === Rabbit.prototype); // работает в ff, opera
alert(rabbit.prop);
т.е. __proto__ - прототип объекта, prototype - объект, который будет использоваться как прототип для создаваемых в дальнейшем объектов