-
Notifications
You must be signed in to change notification settings - Fork 0
/
user.js
55 lines (44 loc) · 1.17 KB
/
user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
// Construtor de Classe (Herança de Classe - Atributos Privados # - Getters):
export default class User {
#nome
#email
#nascimento
#role
#ativo
constructor(nome, email, nascimento, role, ativo = true){
this.#nome = nome
this.#email = email
this.#nascimento = nascimento
this.#role = role || 'estudante'
this.#ativo = ativo
}
get nome() {
return this.#nome
}
get email() {
return this.#email
}
get nascimento() {
return this.#nascimento
}
get role() {
return this.#role
}
get ativo() {
return this.#ativo
}
set nome(novoNome) {
if (novoNome === '') {
throw new Error('formato não válido')
}
this.#nome = novoNome
}
exibirInfos(){
return `Usuario: ${this.#nome}, e-mail: ${this.#email}`
}
}
const novoUser = new User('Juliana', '[email protected]', '2021/01/01');
console.log(novoUser);
console.log(novoUser.exibirInfos());
// Testar se User esta sendo usado como Protótipo de novoUser:
console.log(User.prototype.isPrototypeOf(novoUser))