If you’re coming from a more traditional object-oriented language such as C++ or Java, JavaScript might seem like it’s not object-oriented it all. After all, JavaScript has no concept of classes, and you don’t even need to define any objects in order to write code. JavaScript can look just as much like C as it can an object-oriented language depending on how you decide to write it. But don’t be fooled, JavaScript is an incredibly powerful and expressive object-oriented language that puts many design decisions in the hands of you, the developer.

This full-day class is an exploration of the object-oriented nature of JavaScript. It is not specific to a particular JavaScript environment, so it’s equally useful for web developers and Node.js developers. The class includes information about ECMAScript 5 and it’s new capabilities that have changed how you can work with objects in JavaScript.


Intermediate web and Node.js developers (at least one year of working with JavaScript is recommended)

What you’ll learn

  • The differences between primitives and reference values
  • What makes JavaScript functions so unique
  • The various ways of creating an object
  • The difference between data properties and accessor properties using ECMAScript 5
  • How to define your own constructors
  • How to work with and understand prototypes
  • Various inheritance patterns for types and objects
  • How to create private and privileged object members
  • How to prevent modification of objects using ECMAScript 5 functionality

What you should know

Because this is not an introductory class, there are several things you should know before taking the class:

  • How to declare variables and functions
  • How to use an interactive JavaScript environment such as Firebug or the Node.js REPL
  • How to write JavaScript in a file and run it in a browser or with Node.js

About the instructor

Nicholas C. Zakas has more than 15 years of web development experience working on web applications and with JavaScript. He has worked both on enterprise intranet systems as well as large-scale consumer sites. Nicholas has written several books on JavaScript and is a frequent speaker at web development conferences around the world.

Scheduling options

There are three options for scheduling this class.

In-person Class

If you’re an individual who would like to attend the class in person, please fill out the interest form. The cost per attendee is $499 and filling out the form is only an indicator of interest to help me schedule classes in your area and doesn’t commit you to actually attending.

At your company

The second option is to schedule the class to take place at your company. This is frequently a better option if you have several people at your company interested in taking the class. Please contact me for scheduling information.

Online via Adobe Connect

The third option is to attend one of the scheduled online classes. There are currently no online classes scheduled. Please contact me for scheduling information.