O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Beginning Object-Oriented Programming with JavaScript

Video Description

TagLine

About This Video

  • Cover the new object-oriented features introduced as a part of ECMAScript 2015
  • Build web applications that promote scalability, maintainability, and usability
  • Discover how to skillfully develop asynchronous code within larger JS applications

In Detail

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.

Table of Contents

  1. Chapter 1 : Diving into Objects and OOP Principles
    1. Course Overview 00:03:01
    2. Lesson Overview 00:02:28
    3. Creating and Managing Object Literals 00:01:33
    4. Properties 00:04:31
    5. Methods 00:01:58
    6. Defining Object Constructors 00:07:31
    7. Using Object Prototypes 00:02:21
    8. Using Classes 00:03:17
    9. Beginning with Object-Oriented JavaScript 00:03:25
    10. Checking Abstraction and Modeling Support 00:01:39
    11. Association 00:02:00
    12. Aggregation 00:01:23
    13. Composition 00:00:40
    14. Analyzing OOP Principle Support in JavaScript 00:04:54
    15. Polymorphism 00:03:05
    16. JavaScript OOP versus Classical OOP 00:01:32
    17. Summary 00:01:13
  2. Chapter 2 : Working with Encapsulation and Information Hiding
    1. Lesson Overview 00:00:49
    2. Encapsulation and Information Hiding 00:05:09
    3. Privacy Levels 00:03:04
    4. Using the Meta-Closure Approach 00:03:21
    5. Managing Isolated Private Members 00:01:03
    6. A Definitive Solution with WeakMap 00:02:23
    7. Using Property Descriptors Part-1 00:07:25
    8. Using Property Descriptors Part-2 00:03:15
    9. Implementing Information Hiding in ES6 Classes 00:01:21
    10. Lesson Summary 00:00:54
  3. Chapter 3 : Inheriting and Creating Mixins
    1. Lesson Overview 00:00:57
    2. Implementing Inheritance 00:00:43
    3. Objects and Prototypes 00:07:14
    4. Prototype Chaining 00:02:21
    5. Inheritance and Constructors 00:02:28
    6. Using Class Inheritance 00:01:56
    7. Overriding Methods 00:04:01
    8. Overriding Properties 00:02:51
    9. Protected Members 00:07:03
    10. Implementing Multiple Inheritance 00:01:59
    11. Creating and Using Mixins 00:03:44
    12. Lesson Summary 00:00:58
  4. Chapter 4 : Defining Contracts with Duck Typing
    1. Lesson Overview 00:00:46
    2. Managing Dynamic Typing 00:01:05
    3. Dynamic Data Types 00:04:42
    4. Beyond the Instance Type 00:03:14
    5. Contracts and Interfaces 00:02:27
    6. Implementing Duck Typing 00:01:32
    7. Defining a Private Function 00:01:04
    8. A General Solution 00:01:37
    9. Emulating Interfaces with Duck Typing 00:01:55
    10. Demonstrating the Equivalent Version without ECMAScript 2015 Syntax 00:02:48
    11. Multiple Interface Implementation 00:01:32
    12. Comparing Duck Typing and Polymorphism 00:02:22
    13. Lesson Summary 00:00:58
  5. Chapter 5 : Advanced Object Creation
    1. Lesson Overview 00:01:07
    2. Creating Objects 00:02:18
    3. Creating a Singleton 00:00:38
    4. Mysterious Behavior of Constructors 00:01:28
    5. Singletons 00:01:15
    6. Implementing an Object Factory 00:05:26
    7. The Abstract Factory 00:03:00
    8. The Builder Pattern 00:02:39
    9. Lesson Summary 00:00:43
  6. Chapter 6 : Working with Data
    1. Lesson Overview 00:01:31
    2. Managing User Interfaces 00:03:24
    3. Implementing Presentation Patterns 00:01:18
    4. The Model-View-Controller Pattern 00:03:33
    5. The Model-View-Presenter Pattern 00:02:46
    6. The Model-View-ViewModel Pattern 00:02:32
    7. Data Binding 00:03:19
    8. Implementing Data Binding 00:01:42
    9. Monitoring Changes 00:01:52
    10. Hacking Properties 00:01:10
    11. Setting up a Data Binding Relationship 00:01:17
    12. Applying the Publish/Subscribe Pattern 00:03:30
    13. Lesson Summary 00:01:53
  7. Chapter 7 : Asynchronous Programming and Promises
    1. Lesson Overview 00:00:56
    2. Event Loop and Asynchronous Code 00:02:45
    3. Events, Ajax, and Other Asynchronous Stuff 00:00:36
    4. Writing Asynchronous Code 00:07:40
    5. Issues of Asynchronous Code 00:01:32
    6. Promises 00:08:28
    7. Lesson Summary 00:00:52
  8. Chapter 8 : Organizing Code
    1. Lesson Overview 00:01:09
    2. Taking Control of the Global Scope 00:02:46
    3. Creating Namespaces 00:04:35
    4. Organizing Code with the Module Pattern 00:04:23
    5. Augmentation 00:04:08
    6. Composing Modules 00:01:23
    7. Loading the Module 00:04:40
    8. Module Loader Issues 00:01:00
    9. Asynchronous Module Definition 00:05:32
    10. Using the ECMAScript 2015 Modules 00:02:54
    11. Lesson Summary 00:02:02