O documento descreve a criação de objetos e protótipos em JavaScript, definindo propriedades e métodos em objetos construtores e seus respectivos protótipos e instâncias.
9. A
!
a = 2
Prototipo de A
!
A.prototype.pA = 3
Object
!
Prototipo de Object
!
pO = 1
10. A
!
a = 2
Prototipo de A
!
pA = 3
A.prototype.pA = 3
Object
!
Prototipo de Object
!
pO = 1
11. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
var B = function() {
this.b = 4;
}
B
!
b = 4
12. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
Prototipo de B
!
13. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
Prototipo de B
!
B.prototype = new A
14. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
B.prototype = new A
15. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
B.prototype = new A
16. 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
17. 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
18. 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
19. 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
20. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
new A()
!
a = 2
pB = 5
21. 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()
22. 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
23. 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
!
24. 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
!
25. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
new A()
!
a = 2
pB = 5
x.b
x
new B()
!
b = 4
Prototipo de B
!
?
26. 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
!
27. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
new A()
!
a = 2
pB = 5
x.pB
x
new B()
!
b = 4
Prototipo de B
!
?
28. 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
!
29. A
!
a = 2
Prototipo de A
!
pA = 3
Object
!
Prototipo de Object
!
pO = 1
B
!
b = 4
new A()
!
a = 2
pB = 5
x.a
x
new B()
!
b = 4
Prototipo de B
!
?
30. 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
!
31. 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
!
?
32. 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
!
33. 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
!
?
35. function f (x) {
return function (y) {
return x + y;
};
}
var a = f(5);
var b = a(3);
alert(b); // ????
37. 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.
38. Buscar alunos com menos de 30 anos.
alunos = [{nome: “Rodrigo”, idade: 30},
{nome: “Patricia”, idade: 20},
{nome: “Marcos”, idade: 33},
{nome: “Ricardo”, idade: 28}
]
50. 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
51. 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
54. SELECT * FROM alunos WHERE idade < 30
var doubled = [1,2,3].map(function(n) {
return n * 2
})
55. 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!
});
57. function f (x) {
return function (y) {
return x + y;
};
}
var a = f(5);
var b = a(3);
alert(b); // ????
76. a closure (...) is a
function or reference to a
function together with a
referencing environment
“
http://en.wikipedia.org/wiki/Closure_(computer_science)