Criei um projeto paralelamente ao da aula para exercitar um pouco, aí nessa de separar as classes, usar o extends, uma função minha (Material / calculaPreco) não executou do jeito que eu gostaria, vou colar o código aqui e se alguém puder ajudar, agradeço.
import { Fornecedor } from './Fornecedor.js';
import { Material } from './Material.js';
import { Papel } from './Papel.js';
const chamex = new Fornecedor('Chamex', '5.114.255/0001-02')
const papelKraft = new Papel('Kraft', 180, 25, chamex, 15);
console.log(papelKraft);
papelKraft.calculaPreco(6);
console.log(Material.precoFinal);
console.log(Material.qtdMateriais);
import { Fornecedor } from "./Fornecedor.js";
export class Material {
static qtdMateriais = 0;
static precoFinal = 0;
constructor(tipo, gramatura, quantidade, fornecedor, preco){
this._tipo = tipo;
this._gramatura = gramatura;
this._quantidade = quantidade;
this._fornecedor = fornecedor;
this._preco = preco;
Material.qtdMateriais += 1;
}
set fornecedor(novoFornecedor){
if(novoFornecedor instanceof Fornecedor){
this._fornecedor = novoFornecedor;
}
}
get fornecedor(){
return this._fornecedor;
}
calculaPreco(area){
if(this.quantidade > area) {
this.precoFinal += area * this.preco;
this.quantidade -= area;
return this.precoFinal;
}
}
}
import { Material } from "./Material.js";
export class Papel extends Material {
constructor(tipo, gramatura, quantidade, fornecedor, preco){
super(tipo, gramatura, quantidade, fornecedor, preco);
}
}
export class Fornecedor{
constructor(nome, cnpj){
this._nome = nome;
this._cnpj = cnpj;
}
set nome(nomeCliente){
this.nome = nomeCliente;
}
get nome(){
return this.nome
}
get cnpj(){
return this._cnpj;
}
}
Obs.: Qualquer sugestão para o código, mesmo que fora do problema que mostrei, será bem vinda também.