
This video, gives an overview of the entire course.
This video gives an overview of the first lesson: Diving into Object and OOP Principles.
This video will show us how to create and manage object literals.
In this video, we will learn about properties.
In this video, we will learn about methods.
In this video, we will take a look at how to define object constructors.
In this video, we’ll discuss how to change the structure of all objects created using a constructor.
In this video, we will learn about classes.
In this video, we will look at the basics of Object-Oriented JavaScript.
In this video, we will learn about checking abstraction and modeling support.
In this video, we will learn about association.
In this video, we will learn about association.
In this video, we will learn about composition which is a type of aggregation.
The second requirement that allows you to consider JavaScript as an Object-Oriented language involves the support of at least three principles—encapsulation, inheritance, and polymorphism. Let's analyze how JavaScript supports each of these principles.
In this video, we will learn about polymorphism.
In this video, we will learn about the difference between JavaScript OOP and Classical OOP.
This video summarizes your learning.
This video gives an overview of the second lesson: Working with Encapsulation and Information Hiding.
In this video, we will explore some common techniques that will allow you to implement encapsulation and information hiding in JavaScript.
In this video, we will learn about Privacy Levels, their benefits and drawbacks.
In this video, we will learn how to use the Meta-Closure Approach.
In this video, we will take a look at how to manage isolated private members.
In this video, we will look at WeakMap.
In this video, we will learn how to use Property Descriptors.
In this video, we will dive a little deeper into Property Descriptors.
In this video, we will learn to implement information hiding in ES6 Classes.
This video summarizes your learning.
This video gives an overview of the third lesson: Inheriting and Creating Mixins.
In this video, we will learn to implement inheritance.
In this video, we will learn about objects and prototypes.
In this video, we will learn about prototype chaining.
In this video, we will learn about inheritance and constructors.
ECMAScript 2015 introduced the ‘class’ keyword to the language and in this topic, we’ll investigate how to use this to achieve inheritance in JavaScript.
In this video, we will learn the most common ways to control inheritance in JavaScript.
In this video, we will learn to override properties.
In this video, we will learn about protected members.
In this video, we will learn to implement multiple inheritance.
In this video, we will learn to add mixins in JavaScript with a simple example.
This video summarizes your learning.
This video gives an overview of the fourth lesson: Defining Contracts with Duck Typing.
In this video, we will understand how to manage dynamic typing.
In this video, we will learn about dynamic data types.
In this video, we will learn about the instance type.
In this video, we will learn about contracts and interfaces.
In this video, we will learn to implement duck typing.
In this video, we will define a private function.
In this video, we will look at a general solution.
In this video, we will learn to emulate interfaces with duck typing.
This video demonstrates the equivalent version without ECMAScript 2015 Syntax.
In this video, we will learn to implement multiple interfaces.
In this video, we will compare duck typing to polymorphism.
This video summarizes your learning.
This video gives an overview of the fifth lesson: Advanced Object Creation.
In this topic, we’ll investigate how software design patterns work and how to utilise them when creating objects.
In this video, we will learn to create a singleton.
In this video, we will explore the mysterious behaviour of constructors.
In this video, we will learn to implement a singleton in JavaScript.
In this video, we will learn to implement an object factory.
In this video, we will learn about the abstract factory.
In this video, we will learn to use the builder pattern.
This video summarizes your learning.
This video gives an overview of the sixth lesson: Working with Data.
In this video, we will learn to manage user interfaces.
In this video, we will learn about presentation patterns and how they implement separation of concerns.
In this video, we will learn about the Model-View-Controller Pattern.
In this video, we will learn about the Model-View-Presenter Pattern.
In this video, we will learn about the Model-View-ViewModel Pattern.
In this video, we will see how data binding works.
In this video, we will learn to implement data binding.
In this video, we will learn to monitor changes made to the data.
In this video, we will learn about hacking properties.
In this video, we will learn about setting up a data binding relationship.
In this video, we will apply the publish/subscribe pattern.
This video summarizes your learning.
This video gives an overview of the seventh lesson: Asynchronous Programming and Promises.
In this video, we will learn about event loop and asynchronous code.
In this video, we will learn about events, ajax and other asynchronous stuff.
In this video, we will learn to write asynchronous code.
In this video, we will understand the common issues one can face while using asynchronous code.
In this video, we will learn about promises.
This video summarizes your learning.
This video gives an overview of the eight lesson: Organizing Code.
In this video, we will look at the Global Scope of JavaScript.
In this video, we will learn to create namespaces.
In the previous section, we introduced namespaces as an approach to organizing our code in nested areas. Now, let us look at modules as another way to organize the code of an application.
In this video, we will take a look at augmentation.
In this video, we will learn to compose modules.
In this video, we will understand how module loading plays an important role in JavaScript.
In this video, we will look at module loader issues.
In this video, we will learn the definition of asynchronous module.
In this video, we will learn how to use the ECMAScript 2015 Modules.
This video summarizes your learning.
Before diving into the intricacies of front-end frameworks, serverless architectures, or back-end development, it's important to understand the fundamental concepts of the modern JavaScript language. We'll show you everything you need to know to get up and running with proven object-oriented patterns so that you can confidently tackle your own real-world development projects. With coverage of everything from new syntax to working with classes, complex inheritance, dynamic typing, and data binding, this course is the complete primer for those looking to work with modern, production-ready JavaScript.
About the Author
Andrea Chiarelli has over 20 years experience as a software engineer and technical writer. In his professional career, he has used various technologies for the projects he has been involved in: from C# to JavaScript, from Angular to React, from ASP .NET to PhoneGap/Cordova. He has contributed to many online and offline magazines and has been the author of a few books published by Wrox Press and Packt. Currently, he is a senior software engineer at the Italian office of Apparound, Inc. and a regular contributor to HTML .it, an Italian online magazine focused on web technologies.
Tamas Piros is a full stack web developer turned technical trainer who has a decade of experience working with prestigious organisation throughout the world including Credit Suisse, Verizon, BBC and Accenture to mention a few. Throughout his professional career, he has delivered presentations and workshops all over the world to a mix of technical and non-technical audiences. He has recently launched a blog dedicated to developers wishing to read articles around the latest and greatest technology. He also owns a training business in London, UK called Full Stack Training Ltd. He is active on Twitter as well.