javascript orientado a objetos - fisl12

64
Object Oriented Javascript Emerson Macedo @emerleite http://nodecasts.org http://codificando.com

Upload: emerson-macedo

Post on 31-May-2015

5.133 views

Category:

Technology


5 download

DESCRIPTION

Apresentação sobre Orientação a Objetos com Javascript feita no FISL 12. O Objetivo foi mostrar que Javascript é tão orientado a objetos quanto as linguagens baseadas em classes.

TRANSCRIPT

Page 1: Javascript Orientado a Objetos - Fisl12

Object Oriented

JavascriptEmerson Macedo

@emerleitehttp://nodecasts.org

http://codificando.com

Page 2: Javascript Orientado a Objetos - Fisl12

#whoami

Page 3: Javascript Orientado a Objetos - Fisl12
Page 4: Javascript Orientado a Objetos - Fisl12
Page 5: Javascript Orientado a Objetos - Fisl12
Page 6: Javascript Orientado a Objetos - Fisl12
Page 7: Javascript Orientado a Objetos - Fisl12

#javascript

Page 8: Javascript Orientado a Objetos - Fisl12
Page 9: Javascript Orientado a Objetos - Fisl12
Page 10: Javascript Orientado a Objetos - Fisl12
Page 11: Javascript Orientado a Objetos - Fisl12
Page 12: Javascript Orientado a Objetos - Fisl12
Page 13: Javascript Orientado a Objetos - Fisl12
Page 14: Javascript Orientado a Objetos - Fisl12
Page 15: Javascript Orientado a Objetos - Fisl12
Page 16: Javascript Orientado a Objetos - Fisl12
Page 17: Javascript Orientado a Objetos - Fisl12

Todo programador que trabalha com web

deve aprender Javascript

Page 18: Javascript Orientado a Objetos - Fisl12

Todo programador que trabalha com web

deve aprender Javascript

#corretamente

Page 19: Javascript Orientado a Objetos - Fisl12
Page 20: Javascript Orientado a Objetos - Fisl12

#caracteristicas

Page 21: Javascript Orientado a Objetos - Fisl12
Page 22: Javascript Orientado a Objetos - Fisl12

Javascript é Orientado a Objetos

Page 23: Javascript Orientado a Objetos - Fisl12
Page 24: Javascript Orientado a Objetos - Fisl12

“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

DefinindoOrientação a Objetos

Page 26: Javascript Orientado a Objetos - Fisl12

publicprotected

private

ClasseHerança

SobrescritaSobrecarga

Page 27: Javascript Orientado a Objetos - Fisl12

publicprotected

private

ClasseHerança

SobrescritaSobrecarga

Page 28: Javascript Orientado a Objetos - Fisl12

Modelar omundo real

Page 29: Javascript Orientado a Objetos - Fisl12

Modelar omundo real

Page 30: Javascript Orientado a Objetos - Fisl12

Orientação a Objetosserve para lidar com

complexidade

Page 31: Javascript Orientado a Objetos - Fisl12

#propriedades

Page 32: Javascript Orientado a Objetos - Fisl12
Page 33: Javascript Orientado a Objetos - Fisl12
Page 34: Javascript Orientado a Objetos - Fisl12
Page 35: Javascript Orientado a Objetos - Fisl12
Page 36: Javascript Orientado a Objetos - Fisl12
Page 37: Javascript Orientado a Objetos - Fisl12

#comofaz

Page 38: Javascript Orientado a Objetos - Fisl12

Usando classes - Ex: Java

Page 39: Javascript Orientado a Objetos - Fisl12

Usando classes - Ex: Java

Page 40: Javascript Orientado a Objetos - Fisl12

Classe é uma definição de estrutura

com estado e comportamento

Page 41: Javascript Orientado a Objetos - Fisl12

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

Javascript Functions - Sintaxe

Page 43: Javascript Orientado a Objetos - Fisl12

Contruindo Objetos

• Podem ser construidos com new

• Podem ser construidos usando { }

• Podem ser construidos com funções

Page 44: Javascript Orientado a Objetos - Fisl12

Contruindo Objetos - new

Page 45: Javascript Orientado a Objetos - Fisl12

Contruindo Objetos - { }

Page 46: Javascript Orientado a Objetos - Fisl12

Contruindo Objetos - funções

Page 47: Javascript Orientado a Objetos - Fisl12

#prototype

Page 48: Javascript Orientado a Objetos - Fisl12

Contruindo Objetos - herança

Page 49: Javascript Orientado a Objetos - Fisl12

#closures

Page 50: Javascript Orientado a Objetos - Fisl12

Closure é uma definição de um comportamento

com estado

Page 51: Javascript Orientado a Objetos - Fisl12

Closures

Page 52: Javascript Orientado a Objetos - Fisl12

Closures - private

Page 53: Javascript Orientado a Objetos - Fisl12

Closures - Mixins

Page 54: Javascript Orientado a Objetos - Fisl12

Closures - Mixins

Page 55: Javascript Orientado a Objetos - Fisl12

Usando classes - Ex: Java

Page 56: Javascript Orientado a Objetos - Fisl12

Usando closures - Ex: Javascript

Page 57: Javascript Orientado a Objetos - Fisl12

Mixins fazem composição de comportamento melhor que herança

Page 58: Javascript Orientado a Objetos - Fisl12

#conclusão

Page 59: Javascript Orientado a Objetos - Fisl12

Javascript nunca foi uma linguagem de

brinquedo

Page 60: Javascript Orientado a Objetos - Fisl12

Classe é apenas uma forma de construir

objetos

Page 61: Javascript Orientado a Objetos - Fisl12

Closures são mais poderosos que classes

Page 62: Javascript Orientado a Objetos - Fisl12

Javascript é “mais” Orientado a Objetosdo que você imagina

Page 63: Javascript Orientado a Objetos - Fisl12

Obrigado !!!

Emerson Macedo@emerleite

http://nodecasts.orghttp://codificando.com

Page 64: Javascript Orientado a Objetos - Fisl12

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