Extend prototype and static methods and properties of child constructor from a parent constructor.
Copy prototype and static methods and properties to a child constructor from a parent constructor.
Initialize a base class to be inherited by, or mixed into, a child class. Only required for classes that do not inherit or mixin other classes.
Allow event handlers to be attached, called when events occur, and detached.
Provide a simple map interface for associating arbitrary data with a symbolic name.
Registry of classes with instantiation abstraction.
See the API documentation for a complete reference of available utilities.
OOjs is optimised for modern ECMAScript 5 environments. The source code is compatible with the older ECMAScript 3 engine (such as in older versions of Internet Explorer, broadly speaking IE8 and before), but users need a polyfill to provide required ECMAScript 5 methods.
It is packaged to be run in either Web browsers or Node.js.
While not dependent on jQuery, there is an optimized package that makes use of jQuery features, resulting in a smaller file being sent to the client.
In the presence of a module system, such as in Node.js, OOjs exports all of its classes and methods. In other environments, such as Web browsers, a global variable is created named
You may access
OO the same way you would access
If you are using JSHint, you should add the following to your
"predef": [ "OO" ]
- Source code on phabricator.wikimedia.org/diffusion/ (GitHub mirror)
- Package on npmjs.org
- Phabricator project (issue tracker)
- API Documentation