Skip to Content
JavaScript for PHP Developers
book

JavaScript for PHP Developers

by Stoyan Stefanov
April 2013
Intermediate to advanced
160 pages
3h 2m
English
O'Reilly Media, Inc.
Content preview from JavaScript for PHP Developers

Chapter 7. JavaScript Patterns

Now that you know about JavaScript’s syntax and built-in APIs, as well as the special treatment of functions and the existence of prototypes, let’s take a look at some common JavaScript patterns. These are not necessarily the design patterns from the Gang of Four’s book (although there are a few at the end, for good measure), but mostly patterns specific to organizing your code when creating a larger application.

For example, JavaScript doesn’t have namespaces, modules, or private properties, but these are all features that are easy to replicate.

You’ll notice that most of the time, the solutions to a lot of problems boil down to interesting uses of functions, which is why understanding functions, closures, and scope is critical to mastering JavaScript.

Private Properties

In ES5, you can use property descriptors to limit access to certain properties, but you can’t do anything like this in ES3. So how do you create private properties that no one is allowed to touch?

The solution is to use a closure and not expose the variables you want to keep private. These will not be exactly private properties of an object, but they will be private nevertheless.

An example of using a closure for privacy was discussed in Immediate Functions. But the topic is worth reviewing and expanding. A common pattern of using a closure to define an object is like this:

var my = (function () {
  return {
    hi: 1,
    bye: 2
  };
}());

my.hi; // 1

At first sight, the end result is not different ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

JavaScript Application Design

JavaScript Application Design

Nicolas Bevacqua

Publisher Resources

ISBN: 9781449336059Errata Page