CrxOop CrxOop: Bringing Object Oriented Programming, and Proper Prototype Based Programming, To Javascript
The aim of the library documented below is to provide developers with a solution to allow development using interfaces and classes as they are known in other object oriented programming (OOP) languages such as C++, C#, Java and PHP. Further more, V1.4 introduces structures, a generalization of the concept of prototypal inheritance, known here as POBP.

1.1 Preface (IMPORTANT)

WARNING. This is for verision 2.x of the library, which introduces major syntax differences for when accessing instance variables and functions, and static variables and functions, from within static functions. For the old documentation, refer to V1.x Documentation

CrxOop is a javascript (JS) library whose primary aim is to allow JS developers to develop using interfaces and classes as they are known in other object oriented programming (OOP) languages such as C++, C#, Java and PHP. The aim of this documentation is to describe the available features and their syntax. The documentation does not aim to teach you OOP, nor does it aim to teach you JS. Further more, I shall rely mostly on C++ terminology and syntax throughout this documentation, with some exceptions such as the word 'interface' which is borrowed from Java. This does not mean that this terminology is exclusive to those languages, but I am simply ensuring my communication is defined. The code presented here, especially that which is written in C++, does not constitute best practice and should not be used as reference in any way beyond what is intended here.

This documentation is very brief about the actual details of OOP concepts. For further details, refer to C++'s documentation first, and if the topic is not found there, Java's documentation. A web search engine can be very handy. Needless to say, familiarity with any of C++, Java, and to some extent C# and PHP, is very useful when learning CrxOop.

Version 1.4 of the library introduces Structures, a formalization and generalization of prototypal inheritance in javascript. Structures are meant primarly to be used for data structures, but they can be used by those who prefer prototypal inheritance for certain algorithms, taking advantage of well defined and enforced accessors, well defined constructor invocation, and data typing. In other words, structures are CrxOop's implementation of Prototype Based Programming, or as this author likes to call it, Prototype Object Based Programming (POBP).