-
Notifications
You must be signed in to change notification settings - Fork 0
/
Carrinho.js
51 lines (39 loc) · 1.18 KB
/
Carrinho.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
const Carrinho = (function() {
let instance;
function createInstance() {
let produtos = [];
function addProduto(produto){
produtos.push(produto);
}
function getProduto() {
return produtos;
}
function clearCarrinho(){
produtos = [];
}
return {
addProduto, getProduto, clearCarrinho
}
}
return {
getInstance: () => {
if(!instance){
instance = createInstance();
}
return instance;
}
}
})()
const carrinho = Carrinho.getInstance();
carrinho.addProduto({nome: "Produto 1", preco: 10})
carrinho.addProduto({nome: "Produto 2", preco: 20})
carrinho.addProduto({nome: "Produto 3", preco: 30})
carrinho.addProduto({nome: "Produto 4", preco: 40})
console.log(carrinho.getProduto());
carrinho.clearCarrinho();
console.log(carrinho.getProduto());
carrinho.addProduto({nome: "Produto 5", preco: 15})
carrinho.addProduto({nome: "Produto 6", preco: 25})
carrinho.addProduto({nome: "Produto 7", preco: 35})
carrinho.addProduto({nome: "Produto 8", preco: 45})
console.log(carrinho.getProduto());