OO.Factory()

new OO.Factory() #

Extends

Methods

create(key, …argsopt) → {Object} #

Create an object based on a key.

The key is used to look up the class to use, with any subsequent arguments passed to the constructor function.

Parameters:

Name Type Attributes Description
key string

Class key

args any <optional>
<repeatable>

Arguments to pass to the constructor

Source:

Throws:

Unknown key

Type
Error

Returns:

The new object

Type
Object
Create an object based on a key.

lookup(name) → {any|undefined} #

Get data for a given symbolic name.

Parameters:

Name Type Description
name string

Symbolic name

Inherited From:
Source:

Returns:

Data associated with symbolic name

Type
any | undefined
Get data for a given symbolic name.

register(constructor, keyopt) #

Register a class with the factory.

function MyClass() {};
OO.initClass( MyClass );
MyClass.key = 'hello';

// Register class with the factory
factory.register( MyClass );

// Instantiate a class based on its registered key (also known as a "symbolic name")
factory.create( 'hello' );

Parameters:

Name Type Attributes Description
constructor function

Class to use when creating an object

key string <optional>

The key for #create(). This parameter is usually omitted in favour of letting the class declare its own key, through MyClass.key. For backwards-compatiblity with OOjs 6.0 (2021) and older, it can also be declared via MyClass.static.name.

Overrides:
Source:

Throws:

If a parameter is invalid

Type
Error
Register a class with the factory.

unregister(key) #

Unregister a class from the factory.

Parameters:

Name Type Description
key string | function

Constructor function or key to unregister

Overrides:
Source:

Throws:

If a parameter is invalid

Type
Error
Unregister a class from the factory.

Events

register(name, data) #

Parameters:

Name Type Description
name string
data any
Inherited From:
Source:

unregister(name, data) #

Parameters:

Name Type Description
name string
data any

Data removed from registry

Inherited From:
Source: