-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstructor-pattern.js
43 lines (37 loc) · 1.06 KB
/
constructor-pattern.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
console.log("=== CONSTRUCTOR PATTERN ===");
function Conta(tipo = "CC", saldo = 0, titular = null) {
this.tipo = tipo;
this.saldo = saldo;
this.titular = titular;
/* this.depositar = function (valor = 0) {
if (valor >= 0) {
return this.saldo += valor;
}
} */
}
Conta.prototype.depositar = function (valor = 0) {
if (valor > 0) {
this.saldo += valor;
}
return this.saldo;
}
Conta.prototype.sacar = function(valor=0) {
if (valor > 0 && valor <= this.saldo) {
this.saldo -= valor;
} else {
console.log("Vá se fuder maluco!");
}
return this.saldo
}
Conta.prototype.transferir = function(valor=0, contaDestino) {
if (valor > 0 && this.saldo >= valor && contaDestino instanceof Conta) {
this.sacar(valor);
contaDestino.depositar(valor);
}
}
let contaJoao = new Conta("CP", 2000, "João da Silva");
let contaMaria = new Conta("CC", 3000, "Maria da Silva");
let contaBurro = new Conta();
console.log(contaJoao);
console.log(contaMaria);
console.log(contaBurro);