Prototypal Namespacing

I have a Constructor function "Animals", that is namespacing some other Constructor functions, "Crocodile" and "Monkey":

var Monkey = function(Animals) {
  this.Animals = Animals;
};

Monkey.prototype.feedMe = function() {
  this.Animals.feed();
};

var Crocodile = function(Animals) {
  this.Animals = Animals;
};

Crocodile.prototype.feedMe = function() {
  this.Animals.feed();
};

var Animals = function(zoo) {
  this.zoo = zoo;
};

Animals.prototype.feed = function() {
  //feed the animal
};

Animals.prototype.Monkey = function() {
  this.Animals = Animals.prototype;
};

Animals.prototype.Monkey.prototype = Monkey.prototype;

Animals.prototype.Crocodile = function() {
  this.Animals = Animals.prototype;
};

Animals.prototype.Crocodile.prototype = Crocodile.prototype;

With the intention that I should be able to do the following:

var animals = new Animals("NY");
var monkey = new animals.Monkey();

monkey.feed();

I'm receiving an error that says that monkey.feed() is not a function. I'm assuming i'm doing something wrong with the way i'm inheriting the Monkey function inside the Animal constructor function but for the life of me I haven't been able to find the solution.

What is the correct method I should be using to namespace these functions?

I have seen quite some stuff, but abusing prototypes for namespaces, what the heck. What's wrong with a nice and simple:

var Animals = {
   Crocodile: {

   }
}

Or if you want the constructor way:

var Animals = function () {
    return {
       Crocodile: function () {}
    }
};

var a = new Animals();
var c = new a.Crocodile();