Download - Programação Funcional com Javascript
![Page 1: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/1.jpg)
![Page 2: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/2.jpg)
revisão
![Page 3: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/3.jpg)
Object !
![Page 4: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/4.jpg)
Object !
Prototipo de Object !
![Page 5: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/5.jpg)
Object !
Prototipo de Object !
Object.prototype.pO = 1
![Page 6: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/6.jpg)
Object !
Prototipo de Object !
pO = 1
Object.prototype.pO = 1
![Page 7: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/7.jpg)
A !
a = 2
var A = function() { this.a = 2; }
Object !
Prototipo de Object !
pO = 1
![Page 8: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/8.jpg)
A !
a = 2
Prototipo de A !
Object !
Prototipo de Object !
pO = 1
![Page 9: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/9.jpg)
A !
a = 2
Prototipo de A !
A.prototype.pA = 3
Object !
Prototipo de Object !
pO = 1
![Page 10: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/10.jpg)
A !
a = 2
Prototipo de A !
pA = 3
A.prototype.pA = 3
Object !
Prototipo de Object !
pO = 1
![Page 11: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/11.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
var B = function() { this.b = 4; }
B !
b = 4
![Page 12: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/12.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
Prototipo de B !
![Page 13: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/13.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
Prototipo de B !
B.prototype = new A
![Page 14: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/14.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
B.prototype = new A
![Page 15: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/15.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
B.prototype = new A
![Page 16: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/16.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
B.prototype = new A
new A() !a = 2
![Page 17: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/17.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
B.prototype = new A
new A() !a = 2
![Page 18: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/18.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
B.prototype.pB = 5
![Page 19: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/19.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
B.prototype.pB = 5
![Page 20: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/20.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
![Page 21: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/21.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x = new B()
![Page 22: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/22.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x = new B()x
new B()
!b = 4
![Page 23: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/23.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x = new B()x
new B()
!b = 4
Prototipo de B !
![Page 24: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/24.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x new B()
!b = 4
Prototipo de B !
![Page 25: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/25.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x.bx
new B()
!b = 4
Prototipo de B ! ?
![Page 26: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/26.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x new B()
!b = 4
Prototipo de B !
![Page 27: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/27.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5 x.pBx
new B()
!b = 4
Prototipo de B !
?
![Page 28: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/28.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x new B()
!b = 4
Prototipo de B !
![Page 29: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/29.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5 x.ax
new B()
!b = 4
Prototipo de B !
?
![Page 30: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/30.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x new B()
!b = 4
Prototipo de B !
![Page 31: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/31.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x.pA
x new B()
!b = 4
Prototipo de B !
?
![Page 32: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/32.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x new B()
!b = 4
Prototipo de B !
![Page 33: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/33.jpg)
A !
a = 2
Prototipo de A !
pA = 3
Object !
Prototipo de Object
!pO = 1
B !
b = 4
new A() !a = 2
pB = 5
x.pO
x new B()
!b = 4
Prototipo de B !
?
![Page 34: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/34.jpg)
![Page 35: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/35.jpg)
function f (x) { return function (y) { return x + y; }; } var a = f(5); var b = a(3); alert(b); // ????
![Page 36: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/36.jpg)
Javascript
Alexandre Gomes
princípios da programação funcional com
![Page 37: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/37.jpg)
programação imperativa
1. Bata bem todos os ingredientes ( menos o fermento) da massa no liquidificador, aproximadamente 2 a 3 minutos
2. Acrescente o fermento e bata por mais uns 15 segundos
3. Coloque em uma fôrma redonda, u n t a d a c o m m a n t e i g a e polvilhada com farinha de trigo
4. Asse por cerca de 40 minutos em forno médio (180º graus), preaquecido
programação declarativa
Comunique assim que estiver pronto. Não deixe o bolo queimar. Não deixe que abram o forno antes da hora.
![Page 38: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/38.jpg)
Buscar alunos com menos de 30 anos.
alunos = [{nome: “Rodrigo”, idade: 30}, {nome: “Patricia”, idade: 20}, {nome: “Marcos”, idade: 33}, {nome: “Ricardo”, idade: 28} ]
![Page 39: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/39.jpg)
menores = [] !for (int i = 1; i <= 4; i++) { aluno = alunos[i]; if (aluno.idade < 30) { menores.add(aluno); } } !return menores;
alunos = [{nome: “Rodrigo”, idade: 30}, {nome: “Patricia”, idade: 20}, {nome: “Marcos”, idade: 33}, {nome: “Ricardo”, idade: 28} ]
![Page 40: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/40.jpg)
menores = [] !for (int i = 1; i <= 4; i++) { aluno = alunos[i]; if (aluno.idade < 30) { menores.add(aluno); } } !return menores;
alunos = [{nome: “Rodrigo”, idade: 30}, {nome: “Patricia”, idade: 20}, {nome: “Marcos”, idade: 33}, {nome: “Ricardo”, idade: 28} ]
imperativa
![Page 41: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/41.jpg)
alunos = [{nome: “Rodrigo”, idade: 30}, {nome: “Patricia”, idade: 20}, {nome: “Marcos”, idade: 33}, {nome: “Ricardo”, idade: 28} ]
Nome Idade1 Rodrigo 302 Patricia 203 Marcos 334 Ricardo 28
![Page 42: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/42.jpg)
Nome Idade1 Rodrigo 302 Patricia 203 Marcos 334 Ricardo 28
SELECT * FROM alunos WHERE idade < 30
![Page 43: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/43.jpg)
Nome Idade1 Rodrigo 302 Patricia 203 Marcos 334 Ricardo 28
SELECT * FROM alunos WHERE idade < 30
declarativ
a
![Page 44: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/44.jpg)
menores = [] !for (int i = 1; i <= 4; i++) { aluno = alunos[i]; if (aluno.idade < 30) { menores.add(aluno); } } !return menores;
alunos = [{nome: “Rodrigo”, idade: 30}, {nome: “Patricia”, idade: 20}, {nome: “Marcos”, idade: 33}, {nome: “Ricardo”, idade: 28} ]
SELECT * FROM alunos WHERE idade < 30
![Page 45: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/45.jpg)
![Page 46: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/46.jpg)
var numbers = [1,2,3,4,5]
![Page 47: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/47.jpg)
var numbers = [1,2,3,4,5] var doubled = [] !for(var i = 0; i < numbers.length; i++) { var newNumber = numbers[i] * 2 doubled.push(newNumber) } console.log(doubled) //=> [2,4,6,8,10]
![Page 48: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/48.jpg)
var numbers = [1,2,3,4,5] var doubled = [] !for(var i = 0; i < numbers.length; i++) { var newNumber = numbers[i] * 2 doubled.push(newNumber) } console.log(doubled) //=> [2,4,6,8,10]
var numbers = [1,2,3,4,5] var doubled = numbers.map(function(n) { return n * 2 }) console.log(doubled) //=> [2,4,6,8,10]
![Page 49: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/49.jpg)
var numbers = [1,2,3,4,5]!!!!!!
![Page 50: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/50.jpg)
var numbers = [1,2,3,4,5]!var total = 0!!for(var i = 0; i < numbers.length; i++) {! total += numbers[i]!}!console.log(total) //=> 15
![Page 51: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/51.jpg)
var numbers = [1,2,3,4,5]!var total = 0!!for(var i = 0; i < numbers.length; i++) {! total += numbers[i]!}!console.log(total) //=> 15
var numbers = [1,2,3,4,5]!!var total = numbers.reduce(function(sum,n){! return sum + n!});!console.log(total) //=> 15
![Page 52: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/52.jpg)
programação imperativa
1. HOW
programação declarativa
WHAT
![Page 53: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/53.jpg)
SELECT * FROM alunos WHERE idade < 30
![Page 54: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/54.jpg)
SELECT * FROM alunos WHERE idade < 30
var doubled = [1,2,3].map(function(n) { return n * 2 })
![Page 55: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/55.jpg)
SELECT * FROM alunos WHERE idade < 30
var doubled = [1,2,3].map(function(n) { return n * 2 })
var total = [1,2,3].reduce(function(sum,n){! return sum + n!});
![Page 56: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/56.jpg)
![Page 57: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/57.jpg)
function f (x) { return function (y) { return x + y; }; } var a = f(5); var b = a(3); alert(b); // ????
![Page 58: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/58.jpg)
first-classfunctions
![Page 59: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/59.jpg)
![Page 60: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/60.jpg)
higher-orderfunction
![Page 61: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/61.jpg)
![Page 62: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/62.jpg)
![Page 63: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/63.jpg)
![Page 64: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/64.jpg)
![Page 65: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/65.jpg)
![Page 66: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/66.jpg)
![Page 67: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/67.jpg)
![Page 68: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/68.jpg)
:closures:
![Page 69: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/69.jpg)
![Page 70: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/70.jpg)
![Page 71: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/71.jpg)
![Page 72: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/72.jpg)
![Page 73: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/73.jpg)
![Page 74: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/74.jpg)
![Page 75: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/75.jpg)
![Page 76: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/76.jpg)
a closure (...) is a function or reference to a function together with a referencing environment
“
http://en.wikipedia.org/wiki/Closure_(computer_science)
![Page 77: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/77.jpg)
![Page 78: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/78.jpg)
![Page 79: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/79.jpg)
![Page 80: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/80.jpg)
:closure:
![Page 81: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/81.jpg)
![Page 82: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/82.jpg)
![Page 83: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/83.jpg)
![Page 84: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/84.jpg)
![Page 85: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/85.jpg)
Por quê?!
![Page 86: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/86.jpg)
![Page 87: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/87.jpg)
![Page 88: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/88.jpg)
![Page 89: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/89.jpg)
#comofas?!
![Page 90: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/90.jpg)
![Page 91: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/91.jpg)
![Page 92: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/92.jpg)
a closure (...) is a function or reference to a function together with a referencing environment
“
![Page 95: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/95.jpg)
![Page 96: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/96.jpg)
![Page 97: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/97.jpg)
(
![Page 98: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/98.jpg)
![Page 99: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/99.jpg)
![Page 100: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/100.jpg)
![Page 101: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/101.jpg)
![Page 102: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/102.jpg)
![Page 103: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/103.jpg)
![Page 104: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/104.jpg)
![Page 105: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/105.jpg)
![Page 106: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/106.jpg)
![Page 107: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/107.jpg)
=
=
=
![Page 108: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/108.jpg)
)
![Page 109: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/109.jpg)
![Page 111: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/111.jpg)
![Page 112: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/112.jpg)
![Page 113: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/113.jpg)
![Page 114: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/114.jpg)
...
![Page 115: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/115.jpg)
E o Kiko?!
![Page 116: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/116.jpg)
![Page 117: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/117.jpg)
![Page 118: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/118.jpg)
![Page 119: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/119.jpg)
![Page 120: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/120.jpg)
![Page 121: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/121.jpg)
![Page 122: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/122.jpg)
encapsulamento, que é bom....
![Page 123: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/123.jpg)
![Page 124: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/124.jpg)
>> “Alexandre Gomes”
>> undefined
>> undefined
![Page 125: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/125.jpg)
![Page 126: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/126.jpg)
Yahoo Javascript Module Pattern
![Page 127: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/127.jpg)
P&Raprender.unb.br
![Page 128: Programação Funcional com Javascript](https://reader034.vdocuments.net/reader034/viewer/2022042706/5889f8c51a28ab0f388b5007/html5/thumbnails/128.jpg)