В учебнике очень хорошо объясняется эта тема:
В первом случае :
Rabbit.prototype = { eats: true };
var rabbit = new Rabbit();
rabbit получает прототипом объект { eats: true }, затем у функции вы поменяли прототип на - {}, а у rabbit остается { eats: true }.
А во втором случае вы меняете САМ прототип (доступ получили к нему через функцию), вы его сделали Rabbit.prototype.eats = false; - { eats: false }
Вот так.