Beginning Object-Oriented Programming with JavaScript (Self-paced with Mentor Support)
JavaScript is one of the most widely used programming languages in the world. Born as a simple glue between the user and HTML, it has evolved over the years and has acquired an increasingly important role in modern software development. Today, its scope is no longer just the web browser. Now, it also resides on the server, desktop PCs, mobile devices, and even embedded devices.
JavaScript has now become a language to create complex applications. Beginning Object-Oriented Programming with JavaScript explains how we can write robust and efficient code with JavaScript to create scalable and maintainable applications.
The purpose of this course is to cover all the new object-oriented features introduced in ECMAScript 2015 and show how to build large-scale web apps that promote scalability, maintainability, and reusability. It is ideal for development teams that are thinking of using JavaScript for full-stack web development so that they only need to worry about one language across the entire stack.
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.
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.
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
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
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