Ваш код функционально примерно эквивалентен этому:
Animal={
clone: function(name, sound){
var o=Object.create(this)
o.name=name; o.sound=sound
return o
},
say: function(){console.log(this.name+" says "+this.sound)}
}
Cat=Animal.clone("cat", "meow")
Dog=Animal.clone("dog", "woof")
Cat.say() //>>>> cat says meow
Dog.say() //>>>> dog says woof
Отсюда должно быть понятно, что он делает. Он создает новый объект, и ставит ему в прототип аргумент.