Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Mesmo código, erro diferente.

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;
    }
}
1 resposta
solução!

Acabei de notar o erro em Autenticacao: faltou um _senha.