Contact Us
We would love to hear from you. Please complete this form to pre-book or request further information about our delivery options.

3 Days

(Online and onsite)

Price Upon Request
This course begins with a subtle refresher on objects. It teaches you how easy it is to define objects with the new ECMAScript classes. From there, we’ll fly you through some essential OOP principles, forming a base for you to get hands-on with encapsulation.
You’ll get to work with the different methods of inheritance. From there, we’ll move on to some advanced patterns for object creation, and you’ll get a strong idea of how to use interesting patterns to present data to users and to bind data. You’ll manage dynamic typing using various data types and get familiar with duck typing and polymorphism.
You’ll explore various presentations such as MVC and MVP, along with implementing data binding.
By the end of this course, you’ll discover whether JavaScript is asynchronous and learn to write asynchronous code using callbacks and events.
Lesson 1: Diving into Objects and OOP Principles
- Creating and Managing Object Literals.
- Defining Object Constructors
- Using Object Prototypes
- Using Classes
- Beginning with Object-Oriented JavaScript
- Checking Abstraction and Modeling Support
- Analyzing OOP Principles Support in JavaScript
Lesson 2: Working with Encapsulation and Information Hiding
- Setting up Strategies for Encapsulation and Information Hiding
- Using the Meta-Closure Approach
- Using Property Descriptors
- Implementing Information Hiding in ES6 Classes
Lesson 3: Inheriting and Creating Mixins
- Implementing Objects, Inheritance, and Prototypes
- Using Class Inheritance
- Controlling Inheritance
- Implementing Multiple Inheritance
- Creating and Using Mixins
Lesson 4: Defining Contracts with Duck Typing
- Managing Dynamic Typing
- Defining Contracts and Interfaces
- Implementing Duck Typing
- Comparing Duck Typing and Polymorphism
Lesson 5: Advanced Object Creation
- Mastering Design Patterns, Object Creation, and Singletons
- Implementing an Object Factory
- Exploiting the Builder Pattern
Lesson 6: Working with Data
- Managing User Interfaces
- Implementing Presentation Patterns
- What is Data Binding?
- Implementing Data Binding
- Applying the Publish/Subscribe Pattern
Lesson 7: Asynchronous Programming and Promises
- Is JavaScript Asynchronous?
- Writing Asynchronous Code
- Introducing Promises
Lesson 8: Organizing Code
- Taking Control of the Global Scope
- Creating Namespaces
- Organizing Code with the Module Pattern
- Loading the Module
- Using the ECMAScript 2015 Modules
This course is for existing developers who are new to OOP in JavaScript. They will be looking to build their understanding of modern web development, using the features from the latest changes to the ECMAScript specification.
We specifically focus on object-oriented programming with JS in this course, so prior understanding of basic syntax is assumed.
Hardware
For successful completion of this course, students will require the computer systems with the following:
- Processor: 1.8 GHz or higher Pentium 4 (or equivalent)
- Memory: 2 GB RAM
- Hard disk: 10 GB
- Projector
- Internet connection
Software
Most of the code provided in this course is not bound to a specific JavaScript runtime environment, so it could run in any JavaScript environment. For this course we will be using the following environment:
- Chrome DevTools
- Atom
Installation and Setup
- Download and install the latest Chrome version at https://www.google.com/chrome/browser/desktop/
- Press the F12 key to open the DevTools console.
- Download and install Atom from https://atom.io/
This course begins with a subtle refresher on objects. It teaches you how easy it is to define objects with the new ECMAScript classes. From there, we’ll fly you through some essential OOP principles, forming a base for you to get hands-on with encapsulation.
You’ll get to work with the different methods of inheritance. From there, we’ll move on to some advanced patterns for object creation, and you’ll get a strong idea of how to use interesting patterns to present data to users and to bind data. You’ll manage dynamic typing using various data types and get familiar with duck typing and polymorphism.
You’ll explore various presentations such as MVC and MVP, along with implementing data binding.
By the end of this course, you’ll discover whether JavaScript is asynchronous and learn to write asynchronous code using callbacks and events.
Lesson 1: Diving into Objects and OOP Principles
- Creating and Managing Object Literals.
- Defining Object Constructors
- Using Object Prototypes
- Using Classes
- Beginning with Object-Oriented JavaScript
- Checking Abstraction and Modeling Support
- Analyzing OOP Principles Support in JavaScript
Lesson 2: Working with Encapsulation and Information Hiding
- Setting up Strategies for Encapsulation and Information Hiding
- Using the Meta-Closure Approach
- Using Property Descriptors
- Implementing Information Hiding in ES6 Classes
Lesson 3: Inheriting and Creating Mixins
- Implementing Objects, Inheritance, and Prototypes
- Using Class Inheritance
- Controlling Inheritance
- Implementing Multiple Inheritance
- Creating and Using Mixins
Lesson 4: Defining Contracts with Duck Typing
- Managing Dynamic Typing
- Defining Contracts and Interfaces
- Implementing Duck Typing
- Comparing Duck Typing and Polymorphism
Lesson 5: Advanced Object Creation
- Mastering Design Patterns, Object Creation, and Singletons
- Implementing an Object Factory
- Exploiting the Builder Pattern
Lesson 6: Working with Data
- Managing User Interfaces
- Implementing Presentation Patterns
- What is Data Binding?
- Implementing Data Binding
- Applying the Publish/Subscribe Pattern
Lesson 7: Asynchronous Programming and Promises
- Is JavaScript Asynchronous?
- Writing Asynchronous Code
- Introducing Promises
Lesson 8: Organizing Code
- Taking Control of the Global Scope
- Creating Namespaces
- Organizing Code with the Module Pattern
- Loading the Module
- Using the ECMAScript 2015 Modules
This course is for existing developers who are new to OOP in JavaScript. They will be looking to build their understanding of modern web development, using the features from the latest changes to the ECMAScript specification.
We specifically focus on object-oriented programming with JS in this course, so prior understanding of basic syntax is assumed.
Hardware
For successful completion of this course, students will require the computer systems with the following:
- Processor: 1.8 GHz or higher Pentium 4 (or equivalent)
- Memory: 2 GB RAM
- Hard disk: 10 GB
- Projector
- Internet connection
Software
Most of the code provided in this course is not bound to a specific JavaScript runtime environment, so it could run in any JavaScript environment. For this course we will be using the following environment:
- Chrome DevTools
- Atom
Installation and Setup
- Download and install the latest Chrome version at https://www.google.com/chrome/browser/desktop/
- Press the F12 key to open the DevTools console.
- Download and install Atom from https://atom.io/