Используется процедурный подход. Я же за ООП, как за средство эффективного снижения сложности.
Ближе к делу.
Поиск по данной теме сразу же привел меня на сайт Дугласа Крокфорда (см. раздел по JavaScript). Не буду пересказывать - очень советую прочесть его статьи по JavaScript - лучшее что я читал за последнее время.
Теперь поделюсь примерами из собственного опыта.
Пространства имен - то, к чему я очень привык, разрабатывая на C++, и особенно на C#.
var Namespace1 = Namespace1 || {}; Namespace1.Namespace2 = Namespace1.Namespace2 || {};
Приватные поля - то, без чего вообще жить нельзя.
Namespace1.Namespace2.Cat = function (name_) { var name = name_; this.getName = function () { return name; }; }; Namespace1.Namespace2.Cat.prototype.Meow = function () { alert(this.getName() + " says: meow!"); };
Теперь, если выполнить код:
var cat = new Cat("Bluetooth"); cat.name = "WiFi"; cat.Meow();
То "кот промяукает": "Bluetooth says: meow!", но не "WiFi says: meow!".
На этом пока все, в продолжении обязательно расскажу как я реализую наследование.