ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
JavaScript
Patterns and Techniques
What exactly JS is ?
¡ñ Ecma Script implementation
Currently most browsers fully supports EcmaScript-262 5.1 http://kangax.github.io/compat-
table/es5/
Except IE8 - supports EcmaSript 3rd edition (FYI: there was not ES 4)
Previous releases http://www.ecma-international.org/publications/standards/Ecma-262.htm
¡ñ Prototype Based
¡ñ Dynamically typed
¡ñ First Class Functions
¡ñ Object Oriented, Functional, Imperative
Creating an object
¡ñ Object Literals
¡ñ Anonymous Constructor
¡ñ Factory method
¡ñ Wrappers
creating_object1.js
Setting properties to object
¡ñ Dot Notation
¡ñ Square brackets notation
¡ñ Helper methods from Object
setting_properties1.js
Writing constructors aka defining Classes
¡ñ Function vs Constructor
¡ñ Function¡¯s prototype
¡ñ __proto__
¡ñ polimorphism
constructor.js
Privacy in Java Script
¡ñ Variables scope in JS
¡ñ Private Class Members
privacy.js, privacy2.js
Modules in JavaScript
Module is set of methods and properties, with
or without state.
¡ñ Simple module modules.js
¡ñ Private state in modules modules2.js
¡ñ Revealing Module Pattenr
to be continued
Thank you

More Related Content

Viewers also liked (20)

RAII and ScopeGuard
RAII and ScopeGuardRAII and ScopeGuard
RAII and ScopeGuard
Andrey Dankevich
?
Infographic: The Dutch Games Market
Infographic: The Dutch Games MarketInfographic: The Dutch Games Market
Infographic: The Dutch Games Market
Ingenico ePayments
?
2010 bodley and blackwells
2010 bodley and blackwells2010 bodley and blackwells
2010 bodley and blackwells
Richard Ovenden
?
Week10
Week10Week10
Week10
c001ick
?
MedicReS Animal Experiments
MedicReS Animal ExperimentsMedicReS Animal Experiments
MedicReS Animal Experiments
MedicReS
?
Presentation
PresentationPresentation
Presentation
bugway
?
Presentation for Advanced Detection and Remote Sensing: Radar Systems
Presentation for Advanced Detection and Remote Sensing:  Radar SystemsPresentation for Advanced Detection and Remote Sensing:  Radar Systems
Presentation for Advanced Detection and Remote Sensing: Radar Systems
gtogtema
?
2010 A Strategic Year Of The Jubilee
2010 A Strategic Year Of The Jubilee2010 A Strategic Year Of The Jubilee
2010 A Strategic Year Of The Jubilee
guestc8e3279
?
FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô
FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô
FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô
E-COM UA
?
James Caan Business Secrets App
James Caan Business Secrets AppJames Caan Business Secrets App
James Caan Business Secrets App
JamesCaan
?
Cat's anatomy
Cat's anatomyCat's anatomy
Cat's anatomy
Nicola Bonelli
?
Gor Nishanov, C++ Coroutines ¨C a negative overhead abstraction
Gor Nishanov,  C++ Coroutines ¨C a negative overhead abstractionGor Nishanov,  C++ Coroutines ¨C a negative overhead abstraction
Gor Nishanov, C++ Coroutines ¨C a negative overhead abstraction
Sergey Platonov
?
Estilos y paradigmas de la Interacci¨®n Humano-ComputadorEstilos y paradigmas de la Interacci¨®n Humano-Computador
Estilos y paradigmas de la Interacci¨®n Humano-Computador
Percy Negrete
?
Cpp17 and Beyond
Cpp17 and BeyondCpp17 and Beyond
Cpp17 and Beyond
ComicSansMS
?
How to manage Hortonworks HDB Resources with YARN
How to manage Hortonworks HDB Resources with YARNHow to manage Hortonworks HDB Resources with YARN
How to manage Hortonworks HDB Resources with YARN
Hortonworks
?
Unsupervised Feature Learning
Unsupervised Feature LearningUnsupervised Feature Learning
Unsupervised Feature Learning
Amgad Muhammad
?
·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë
·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë
·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë
Recruit Technologies
?
§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?
§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?
§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?
Aleksey Lukatskiy
?
Microservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker ContainersMicroservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker Containers
Danilo Poccia
?
Customer Success Strategy Template
Customer Success Strategy TemplateCustomer Success Strategy Template
Customer Success Strategy Template
OpsPanda
?
Infographic: The Dutch Games Market
Infographic: The Dutch Games MarketInfographic: The Dutch Games Market
Infographic: The Dutch Games Market
Ingenico ePayments
?
MedicReS Animal Experiments
MedicReS Animal ExperimentsMedicReS Animal Experiments
MedicReS Animal Experiments
MedicReS
?
Presentation
PresentationPresentation
Presentation
bugway
?
Presentation for Advanced Detection and Remote Sensing: Radar Systems
Presentation for Advanced Detection and Remote Sensing:  Radar SystemsPresentation for Advanced Detection and Remote Sensing:  Radar Systems
Presentation for Advanced Detection and Remote Sensing: Radar Systems
gtogtema
?
2010 A Strategic Year Of The Jubilee
2010 A Strategic Year Of The Jubilee2010 A Strategic Year Of The Jubilee
2010 A Strategic Year Of The Jubilee
guestc8e3279
?
FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô
FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô
FactorEx - §ï§Ý§Ö§Ü§ä§â§à§ß§ß§í§Û §æ§Ñ§Ü§ä§à§â§Ú§ß§Ô
E-COM UA
?
James Caan Business Secrets App
James Caan Business Secrets AppJames Caan Business Secrets App
James Caan Business Secrets App
JamesCaan
?
Gor Nishanov, C++ Coroutines ¨C a negative overhead abstraction
Gor Nishanov,  C++ Coroutines ¨C a negative overhead abstractionGor Nishanov,  C++ Coroutines ¨C a negative overhead abstraction
Gor Nishanov, C++ Coroutines ¨C a negative overhead abstraction
Sergey Platonov
?
Estilos y paradigmas de la Interacci¨®n Humano-ComputadorEstilos y paradigmas de la Interacci¨®n Humano-Computador
Estilos y paradigmas de la Interacci¨®n Humano-Computador
Percy Negrete
?
How to manage Hortonworks HDB Resources with YARN
How to manage Hortonworks HDB Resources with YARNHow to manage Hortonworks HDB Resources with YARN
How to manage Hortonworks HDB Resources with YARN
Hortonworks
?
Unsupervised Feature Learning
Unsupervised Feature LearningUnsupervised Feature Learning
Unsupervised Feature Learning
Amgad Muhammad
?
·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë
·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë
·¡²Ñ¸é¤Ç¥¹¥Ý¥Ã¥È¥¤¥ó¥¹¥¿¥ó¥¹¤Î×Ô¶¯ÈëÔý¥Ä©`¥ë¤ò×÷³É¤¹¤ë
Recruit Technologies
?
§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?
§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?
§¬§Ñ§Ü §à§Ò§à§ã§ß§à§Ó§Ñ§ä§î §Ù§Ñ§ä§â§Ñ§ä§í §ß§Ñ §ª§¢?
Aleksey Lukatskiy
?
Microservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker ContainersMicroservice Architecture on AWS using AWS Lambda and Docker Containers
Microservice Architecture on AWS using AWS Lambda and Docker Containers
Danilo Poccia
?
Customer Success Strategy Template
Customer Success Strategy TemplateCustomer Success Strategy Template
Customer Success Strategy Template
OpsPanda
?

Similar to JS patterns (20)

Java SE 9 modules - an introduction (July 2018)
Java SE 9 modules - an introduction (July 2018)Java SE 9 modules - an introduction (July 2018)
Java SE 9 modules - an introduction (July 2018)
Stephen Colebourne
?
Jab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedJab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealed
Ofer Cohen
?
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Ofer Cohen
?
Java SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introductionJava SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introduction
Stephen Colebourne
?
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS
‚¥¸ñ ¸ß
?
Clean code and refactoring
Clean code and refactoringClean code and refactoring
Clean code and refactoring
Yuriy Gerasimov
?
Backbone 4.0
Backbone 4.0Backbone 4.0
Backbone 4.0
Balavignesh Kasinathan
?
Selenium Online Training.pdf
Selenium Online Training.pdfSelenium Online Training.pdf
Selenium Online Training.pdf
SpiritsoftsTraining
?
JavaScript, qu¨¦ hermoso eres
JavaScript, qu¨¦ hermoso eresJavaScript, qu¨¦ hermoso eres
JavaScript, qu¨¦ hermoso eres
Alea Soluciones, S.L.
?
Byte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in JavaByte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in Java
Alex Moskvin
?
AngularJS
AngularJSAngularJS
AngularJS
Yogesh L
?
Dot Net Training in Chennai
Dot Net Training in ChennaiDot Net Training in Chennai
Dot Net Training in Chennai
jeevanfita
?
06.1 .Net memory management
06.1 .Net memory management06.1 .Net memory management
06.1 .Net memory management
Victor Matyushevskyy
?
Web development basics (Part-7)
Web development basics (Part-7)Web development basics (Part-7)
Web development basics (Part-7)
Rajat Pratap Singh
?
Interop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough CodeInterop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough Code
Jeremy Schulman
?
Selenium Online Training.pdf
Selenium Online Training.pdfSelenium Online Training.pdf
Selenium Online Training.pdf
SpiritsoftsTraining
?
Selenium Online Training.pdf
Selenium Online Training.pdfSelenium Online Training.pdf
Selenium Online Training.pdf
SpiritsoftsTraining
?
Selenium Online Training.pdf
Selenium Online Training.pdfSelenium Online Training.pdf
Selenium Online Training.pdf
SpiritsoftsTraining
?
Selenium Online Training.pdf
Selenium Online Training.pdfSelenium Online Training.pdf
Selenium Online Training.pdf
SpiritsoftsTraining
?
Magento 2 Modules are Easy!
Magento 2 Modules are Easy!Magento 2 Modules are Easy!
Magento 2 Modules are Easy!
Ben Marks
?
Java SE 9 modules - an introduction (July 2018)
Java SE 9 modules - an introduction (July 2018)Java SE 9 modules - an introduction (July 2018)
Java SE 9 modules - an introduction (July 2018)
Stephen Colebourne
?
Jab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedJab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealed
Ofer Cohen
?
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Ofer Cohen
?
Java SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introductionJava SE 9 modules (JPMS) - an introduction
Java SE 9 modules (JPMS) - an introduction
Stephen Colebourne
?
Byte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in JavaByte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in Java
Alex Moskvin
?
Dot Net Training in Chennai
Dot Net Training in ChennaiDot Net Training in Chennai
Dot Net Training in Chennai
jeevanfita
?
Interop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough CodeInterop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough Code
Jeremy Schulman
?
Magento 2 Modules are Easy!
Magento 2 Modules are Easy!Magento 2 Modules are Easy!
Magento 2 Modules are Easy!
Ben Marks
?

JS patterns

  • 2. What exactly JS is ? ¡ñ Ecma Script implementation Currently most browsers fully supports EcmaScript-262 5.1 http://kangax.github.io/compat- table/es5/ Except IE8 - supports EcmaSript 3rd edition (FYI: there was not ES 4) Previous releases http://www.ecma-international.org/publications/standards/Ecma-262.htm ¡ñ Prototype Based ¡ñ Dynamically typed ¡ñ First Class Functions ¡ñ Object Oriented, Functional, Imperative
  • 3. Creating an object ¡ñ Object Literals ¡ñ Anonymous Constructor ¡ñ Factory method ¡ñ Wrappers creating_object1.js
  • 4. Setting properties to object ¡ñ Dot Notation ¡ñ Square brackets notation ¡ñ Helper methods from Object setting_properties1.js
  • 5. Writing constructors aka defining Classes ¡ñ Function vs Constructor ¡ñ Function¡¯s prototype ¡ñ __proto__ ¡ñ polimorphism constructor.js
  • 6. Privacy in Java Script ¡ñ Variables scope in JS ¡ñ Private Class Members privacy.js, privacy2.js
  • 7. Modules in JavaScript Module is set of methods and properties, with or without state. ¡ñ Simple module modules.js ¡ñ Private state in modules modules2.js ¡ñ Revealing Module Pattenr