OOjs
OOjs |
---|
Features |
See also |
OOjs (short for "Object-oriented JavaScript") is a JavaScript library for working with objects. Features include inheritance , mixins , static inheritance and additional utilities for working with objects and arrays. It also provides an EventEmitter mixin for event-driven programming, and a factory pattern for decoupling consumers of functionality from any particular class's implementation.
Features[edit]
Inheritance[edit]
OO.inheritClass( childClass, parentClass )
Extend prototype and static methods and properties of child constructor from a parent constructor.
OO.mixinClass( childClass, parentClass )
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.
Events[edit]
Allow event handlers to be attached, called when events occur, and detached.
Registries and Factories[edit]
Provide a simple map interface for associating arbitrary data with a symbolic name.
Registry of classes with instantiation abstraction.
Utilities[edit]
See the API documentation for a complete reference of available utilities.
Compatibility[edit]
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.
Namespace[edit]
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 OO
.
You may access OO
the same way you would access jQuery
or mediaWiki
.
If you are using eslint, you should add the following to your .eslintrc.json
file.
"globals": {
"OO": "readonly"
}
See also[edit]
OOjs
|
External links[edit]
- Source code on phabricator.wikimedia.org/diffusion/ (GitHub mirror)
- Package on npmjs.org
- Phabricator project (issue tracker)
- API Documentation
![]() | OOjs is maintained by the Editing department.
Get help:
|