¿Por que mi funcion no es reconocida?


Hola estoy aprendiendo javascript y quisiera saber por que me sale un error si pongo la funcion registro del prototipo como la puse en el codigo mostrado, pero si la pongo abajo de esta linea: Estudiante.prototype.constructor = Estudiante; si la reconoce, logre hacer que funcionara poniendola debajo de esa linea pero quisiera saber por que funciona ahi y arriba no.

(Espero y me haya hecho entender)

        function Persona (nombre,edad,genero) {

            this.nombre = nombre;

            this.edad = edad;

            this.genero = genero;
        }

        Persona.prototype.obtDetalles = function () {

            for(const propiedad in this) {
                console.log(this(propiedad));
            }

        }


        const Alexis = new Persona("Alexis", 17,"Masculino");

        console.log(Alexis);


        

        function Estudiante (nombre,edad,genero,curso,grupo) {
            this.super = Persona;
            this.super(nombre,edad,genero);

            this.curso = curso;
            this.grupo = grupo;
            
        }

        Estudiante.prototype.registro = function () {
            
            console.log("Te has registrado");

        }

        Estudiante.prototype = new Persona();   

        Estudiante.prototype.constructor = Estudiante;



        const Daniel = new Estudiante("Daniel", 17, "Masculino", "Matematicas", "6AMM");

        
        console.log(Daniel.registro);