Javascript Orientado a Objetos - Fisl12
-
Upload
emerson-macedo -
Category
Technology
-
view
5.147 -
download
5
description
Transcript of Javascript Orientado a Objetos - Fisl12
![Page 1: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/1.jpg)
Object Oriented
JavascriptEmerson Macedo
@emerleitehttp://nodecasts.org
http://codificando.com
![Page 2: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/2.jpg)
#whoami
![Page 3: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/3.jpg)
![Page 4: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/4.jpg)
![Page 5: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/5.jpg)
![Page 6: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/6.jpg)
![Page 7: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/7.jpg)
#javascript
![Page 8: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/8.jpg)
![Page 9: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/9.jpg)
![Page 10: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/10.jpg)
![Page 11: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/11.jpg)
![Page 12: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/12.jpg)
![Page 13: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/13.jpg)
![Page 14: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/14.jpg)
![Page 15: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/15.jpg)
![Page 16: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/16.jpg)
![Page 17: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/17.jpg)
Todo programador que trabalha com web
deve aprender Javascript
![Page 18: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/18.jpg)
Todo programador que trabalha com web
deve aprender Javascript
#corretamente
![Page 19: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/19.jpg)
![Page 20: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/20.jpg)
#caracteristicas
![Page 21: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/21.jpg)
![Page 22: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/22.jpg)
Javascript é Orientado a Objetos
![Page 23: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/23.jpg)
![Page 24: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/24.jpg)
“Eu inventei o termo Orientação a Objetos e posso dizer que eu não
tinha C++ em mente”
Alan Kay
![Page 25: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/25.jpg)
DefinindoOrientação a Objetos
![Page 26: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/26.jpg)
publicprotected
private
ClasseHerança
SobrescritaSobrecarga
![Page 27: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/27.jpg)
publicprotected
private
ClasseHerança
SobrescritaSobrecarga
![Page 28: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/28.jpg)
Modelar omundo real
![Page 29: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/29.jpg)
Modelar omundo real
![Page 30: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/30.jpg)
Orientação a Objetosserve para lidar com
complexidade
![Page 31: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/31.jpg)
#propriedades
![Page 32: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/32.jpg)
![Page 33: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/33.jpg)
![Page 34: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/34.jpg)
![Page 35: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/35.jpg)
![Page 36: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/36.jpg)
![Page 37: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/37.jpg)
#comofaz
![Page 38: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/38.jpg)
Usando classes - Ex: Java
![Page 39: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/39.jpg)
Usando classes - Ex: Java
![Page 40: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/40.jpg)
Classe é uma definição de estrutura
com estado e comportamento
![Page 41: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/41.jpg)
Javascript Functions
• São a principal abstração da linguagem
• Podem retornar ou não alguma coisa
• Javascript não tem classes
• JS é mais O.O do que muitos pensam
![Page 42: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/42.jpg)
Javascript Functions - Sintaxe
![Page 43: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/43.jpg)
Contruindo Objetos
• Podem ser construidos com new
• Podem ser construidos usando { }
• Podem ser construidos com funções
![Page 44: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/44.jpg)
Contruindo Objetos - new
![Page 45: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/45.jpg)
Contruindo Objetos - { }
![Page 46: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/46.jpg)
Contruindo Objetos - funções
![Page 47: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/47.jpg)
#prototype
![Page 48: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/48.jpg)
Contruindo Objetos - herança
![Page 49: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/49.jpg)
#closures
![Page 50: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/50.jpg)
Closure é uma definição de um comportamento
com estado
![Page 51: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/51.jpg)
Closures
![Page 52: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/52.jpg)
Closures - private
![Page 53: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/53.jpg)
Closures - Mixins
![Page 54: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/54.jpg)
Closures - Mixins
![Page 55: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/55.jpg)
Usando classes - Ex: Java
![Page 56: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/56.jpg)
Usando closures - Ex: Javascript
![Page 57: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/57.jpg)
Mixins fazem composição de comportamento melhor que herança
![Page 58: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/58.jpg)
#conclusão
![Page 59: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/59.jpg)
Javascript nunca foi uma linguagem de
brinquedo
![Page 60: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/60.jpg)
Classe é apenas uma forma de construir
objetos
![Page 61: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/61.jpg)
Closures são mais poderosos que classes
![Page 62: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/62.jpg)
Javascript é “mais” Orientado a Objetosdo que você imagina
![Page 63: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/63.jpg)
Obrigado !!!
Emerson Macedo@emerleite
http://nodecasts.orghttp://codificando.com
![Page 64: Javascript Orientado a Objetos - Fisl12](https://reader035.fdocuments.net/reader035/viewer/2022062303/556ac04ed8b42acd348b4778/html5/thumbnails/64.jpg)
Referênciashttp://en.wikipedia.org/wiki/JavaScript
http://en.wikipedia.org/wiki/Smalltalk
http://en.wikipedia.org/wiki/Object-oriented_programming
http://en.wikipedia.org/wiki/Delegation_(programming)http://en.wikipedia.org/wiki/Prototype-based_programming
http://okmij.org/ftp/Scheme/oop-in-fp.txt
http://fragmental.tw/2008/09/23/object-oriented-design-which-how-and-what/
http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html
http://en.wikipedia.org/wiki/Closure_(computer_science)
[Page-Jones, 2000] - http://goo.gl/W9y4l