Skip to Content
JavaScript for PHP Developers
book

JavaScript for PHP Developers

by Stoyan Stefanov
April 2013
Intermediate to advanced content levelIntermediate 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.
Start your free trial

You might also like

PHP 7: Real World Application Development

PHP 7: Real World Application Development

Doug Bierer, Altaf Hussain, Branko Ajzele

Publisher Resources

ISBN: 9781449336059Errata Page