An object (link), which in the prototype is really shared between instances, until the link itself is changed, unlike the contents of the object.
The path to it is to provide each object with its own .price property inside the constructor:
function Animal() { this.price = { test: 4 }; }
The initial value (default) that you provided in Animal.prototype.priceb is also initially shared between the instances, except that as soon as you change it, the instance gets its own copy, which discards the original value from the prototype.
source share