Encapsulamento com prototype | Fórum | School of Net

Deseja poder participar de nosso fórum e tirar todas as suas dúvidas?
Clique aqui e assine nosso plano de acesso ilimitado. Saiba mais.

por Wellington Fernando

3 meses atrás Wellington Fernando

Encapsulamento com prototype

Bom dia! gostaria de saber se esse código está certo, pois está rodando sem problemas. Pode utilizar o prototype dentro da função construtora? Pq o PessoaFisica.prototype não foi sobrescrito? ``` function Person(name) { // Variáveis privadas var name = name; var age = 37; // Variáveis públicas this.altura = 1.78; // Métodos públicos Person.prototype.getAge = function() { return age; }; Person.prototype.setAge = function(newAge) { age = newAge; }; Person.prototype.setName = function(newName) { name = newName; }; Person.prototype.getName = function() { return name; }; } function PessoaFisica(name, newCpf) { Person.call(this, name); var cpf = newCpf; PessoaFisica.prototype.setCpf = function(newCpf) { cpf = newCpf; }; PessoaFisica.prototype.getCpf = function() { return cpf; }; } PessoaFisica.prototype = Object.create(Person.prototype, { constructor: { value : PessoaFisica, configurable: true, enumerable: true, writable: true } }); console.log("---------- Pessoa ----------"); var person = new Person("Luiz Alfios"); console.log("Name: " + person.getName() + "; Age: " + person.getAge()); console.log("\n---------- Pessoa Física ----------"); var pf = new PessoaFisica("Allejo", "99999999999"); console.log("Name: " + pf.getName() + "; Age: " + pf.getAge() + "; CPF: " + pf.getCpf()); console.log(Object.keys(Person.prototype)); console.log(Object.keys(PessoaFisica.prototype)); ```

2 Respostas