Casting de objetos lisos para funcionar instancias ("clases") en javascript

function Person() {
      var self = this;

      self.personName="";
      self.animals=[];
}

function Animal(){
     var self=this;

     self.animalName="";
     self.run=function(meters){
         .....
     }
}

Respuesta del servidor:

 [{personName:John,animals:[{animalName:cheetah},{animalName:giraffe}]} , {personName:Smith,animals:[{animalName:cat},{animalName:dog}]} ]

Estoy obteniendo la matriz de personas del servidor. Quiero convertir la matriz de persona genérica a la matriz de persona escrita. Asi que puedo usar

 persons[0].Animals[2].Run();

Fundé Javascript's

 Object.create(Person,person1);

Pero quiero una versión de navegador cruzado con soporte de matriz

  ObjectArray.create(Person,persons);

o

 Object.create(Person[],persons);

Respuestas a la pregunta(4)

Su respuesta a la pregunta