Cuando vars se reemplazan con const, el código produce un error. Ejecuto este código en la consola del navegador Chrome. Intenté inicializar la variable con let pero eso también produce un error. Revisé documentos sobre variables antes de hacer esta pregunta y sé que me estoy perdiendo algo crucial aquí.
class User { constructor(email, name){ this.email = email; this.name = name; this.score = 0; } login(){ console.log(this.email, 'just logged in'); return this; } logout(){ console.log(this.email, 'just logged out'); return this; } updateScore(){ this.score++; console.log(this.email, 'score is now', this.score); return this; } } class Admin extends User { deleteUser(user){ users = users.filter(u => { return u.email != user.email }); } } //const userOne = new User ('ryu@ninjas.com', 'Ryu'); var userOne = new User('ryu@ninjas.com', 'Ryu'); var userTwo = new User('yoshi@mariokorp.com', 'Yoshi'); var admin = new Admin('shaun@ninjas.com', 'Shaun'); var users = [userOne, userTwo, admin]; //const users = [userOne, userTwo, admin]; admin.deleteUser(userTwo); console.log(users);Eso sucede porque tienes dos variables userOne con el mismo nombre.
Con let y const no puedes declarar más de una variable con el mismo nombre en el mismo ámbito, pero con var no reproducirá un error.
Además, debido a que está reevaluando el valor const de los usuarios, declárelo con let not const
class User { constructor(email, name){ this.email = email; this.name = name; this.score = 0; } login(){ console.log(this.email, 'just logged in'); return this; } logout(){ console.log(this.email, 'just logged out'); return this; } updateScore(){ this.score++; console.log(this.email, 'score is now', this.score); return this; } } class Admin extends User { deleteUser(user){ users = users.filter(u => { return u.email != user.email }); } } const userOne = new User('ryu@ninjas.com', 'Ryu'); const userTwo = new User('yoshi@mariokorp.com', 'Yoshi'); const admin = new Admin('shaun@ninjas.com', 'Shaun'); let users = [userOne, userTwo, admin]; admin.deleteUser(userTwo); console.log(users)