.push () múltiples objetos en la matriz de JavaScript devuelve 'indefinido'

Cuando agrego elementos a la matriz de beats y luego console.log al usuario, obtengo la cantidad correcta de elementos en la matriz. Pero cuando verifico .length, siempre obtengo 1. Intentar llamar al índice siempre me dará 'indefinido' de esta manera:Tom.beats[1] Creo que me falta algo obvio, pero esto me está superando. Sospecho que estoy haciendo mal uso de la.push Método pero no estoy seguro. ¡Cualquier ayuda es muy apreciada! (usando las herramientas de desarrollo de Chrome)

//The USER

function User(name, role){
    this.beats = [ ]; 

    this.name = name;
    this.role = role;

    // add beats to beats array

    this.addBeats = function(beats){ 
        return this.beats.push(beats);
   };

}

// Three New Instances. Three New Users.

var Mal = new User("Mal", "Rapper");
Mal.addBeats(["love", "cash"]);

var Dan = new User("Dan", "Producer");
Dan.addBeats(["cake", "dirt", "sally-mae"]);

var Tom = new User("Tom", "Producer");
Tom.addBeats(["Fun", "Little", "Samsung", "Turtle", "PC"]);

// Check for position in beats array

console.log(Tom.beats); 
console.log(Mal.beats); 
console.log(Dan.beats); 

console.log(Mal.beats[1]);
console.log(Dan.beats[1]);
console.log(Tom.beats[1]);

Respuestas a la pregunta(2)

Su respuesta a la pregunta