Padrões JavaScript Stoyan Stefanov
Padrões JavaScript Stoyan Stefanov
Stoyan Stefanov
Novatec
Authorized Portuguese translation of the English edition of titled JavaScript Patterns, First Edition, ISBN: 978-0-
596-80675-0 © 2010, Stoyan Stefanov. This translation is published and sold by permission of O'Reilly Media, Inc.,
the owner of all rights to publish and sell the same.
Tradução em português autorizada da edição em inglês do título JavaScript Patterns, First Edition, ISBN: 978-0-
596-80675-0 © 2010, Stoyan Stefanov. Esta tradução é publicada e vendida com a permissão da O'Reilly Media,
Inc., detentora de todos os direitos para publicação e venda desta obra.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo
parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora.
ISBN: 978-85-7522-266-9
Histórico de impressões:
Janeiro/2011 Primeira edição
Stefanov, Stoyan
Padr›es JavaScript / Stoyan Stefanov ;
[traduç‹o Edgard Damiani]. -- S‹o Paulo :
Novatec Editora ; Sebastopol, CA. : O«Reilly,
2010.
10-13324 CDD-005.133
Prefácio..............................................................................................................................................13
Capítulo 1 ■ Introdução.......................................................................................................................17
Padrões................................................................................................................................ 17
JavaScript: conceitos............................................................................................................. 19
Orientado a objeto.......................................................................................................... 19
Sem classes.....................................................................................................................20
Protótipos.......................................................................................................................20
Ambiente....................................................................................................................... 21
ECMAScript 5...................................................................................................................... 21
JSLint..................................................................................................................................22
Objeto console.....................................................................................................................23
7
8 Padrões JavaScript
Capítulo 4 ■ Funções...........................................................................................................................75
Conceitos básicos.................................................................................................................75
Esclarecimentos sobre a terminologia..............................................................................76
Declarações versus expressões: nomes e hoisting..............................................................78
Propriedade name da função...........................................................................................78
Hoisting de função.........................................................................................................79
Padrão callback.................................................................................................................... 81
Um exemplo de callback................................................................................................. 81
Callbacks e escopo..........................................................................................................83
Listeners de eventos assíncronos......................................................................................85
Intervalos (timeouts).......................................................................................................85
Callbacks em bibliotecas.................................................................................................86
Retornando funções..............................................................................................................86
Funções autodefiníveis..........................................................................................................87
Sumário 9
Funções imediatas................................................................................................................88
Parâmetros de uma função imediata................................................................................89
Valores retornados de funções imediatas..........................................................................90
Benefícios e utilização..................................................................................................... 91
Inicialização de um objeto imediato......................................................................................92
Ramificação em tempo de inicialização.................................................................................94
Propriedades de função – Um padrão de memoização...........................................................96
Objetos de configuração.......................................................................................................97
Curry...................................................................................................................................99
Aplicação de função........................................................................................................99
Aplicação parcial........................................................................................................... 100
Currying.......................................................................................................................101
Quando usar o currying................................................................................................ 104
Resumo.............................................................................................................................. 104
Índice remissivo................................................................................................................................232