Acabei de fazer o que foi pedido em aula, mas ao rodar o código acaba que da um erro dizendo que a senha não foi definida, ao invés de retornar true ou false. O que pode estar acontecendo? Mesmo que eu cadastre a senha, continua dando erro.
Seguem os códigos:
Funcionario
export class Funcionario {
constructor(nome, cpf, salario) {
if (this.constructor == Funcionario) {
throw new Error('Essa classe só pode ser chamada pelas classes filhas');
}
this._nome = nome;
this._cpf = cpf;
this._salario = salario;
this._bonificacao = 1;
this._senha;
}
get senha() {
return this._senha = senha;
}
cadastrarSenha(senha) {
this._senha = senha;
}
}
Diretor:
import { Funcionario } from "./Funcionario.js";
export class Diretor extends Funcionario {
constructor(nome, cpf,salario) {
super(nome, cpf, salario);
this._bonificacao=2;
}
}
Index:
import { Gerente } from "./Funcionarios/Gerente.js";
import { Diretor } from "./Funcionarios/Diretor.js";
import { SistemaAutenticacao } from "./Autenticacao/SistemaAutenticacao.js";
const diretor = new Diretor("Raul", 12345678910, 5000);
const gerente = new Gerente("Enzo", 2225678910, 3000);
const logou = SistemaAutenticacao.login(diretor,123456789);
console.log(logou);
Autenticação:
export class SistemaAutenticacao {
static login(funcionario, senha) {
return funcionario.senha == senha;
}
}