я не совсем понимаю как работает фабрика (да да пасоны я реал не понмиаю)
но как сделать цепочку прототипа обьяснить могу
function Animals (){
function Cat (){}
Cat.prototype = Object.create(Animals.prototype);
function Rabbit (){}
Rabbit.prototype = Object.create(Animals.prototype);
}
кот и кролик наследуют прототип свой и прототип фабрики