Class: Class

LuCI. Class

LuCI.Class is the abstract base class all LuCI classes inherit from.

It provides simple means to create subclasses of given classes and implements prototypal inheritance.

new LuCI.Class()

luci.js, line 59

Methods

staticLuCI.Class.extend(properties){LuCI.Class}

luci.js, line 87

Extends this base class with the properties described in properties and returns a new subclassed Class instance

Name Type Description
properties Object.<string, *>

An object describing the properties to add to the new subclass.

Returns:
Type Description
LuCI.Class Returns a new LuCI.Class sublassed from this class, extended by the given properties and with its prototype set to this base class to enable inheritance. The resulting value represents a class constructor and can be instantiated with new.

staticLuCI.Class.instantiate(params, new_args){LuCI.Class}

luci.js, line 169

Calls the class constructor using new with the given argument array being passed as variadic parameters to the constructor.

Name Type Description
params Array.<*>

An array of arbitrary values which will be passed as arguments to the constructor function.

new_args * optional repeatable

Specifies arguments to be passed to the subclass constructor as-is in order to instantiate the new subclass.

Returns:
Type Description
LuCI.Class Returns a new LuCI.Class instance extended by the given properties with its prototype set to this base class to enable inheritance.

staticLuCI.Class.isSubclass(classValue){boolean}

luci.js, line 195

Checks whether the given class value is a subclass of this class.

Name Type Description
classValue LuCI.Class

The class object to test.

Returns:
Type Description
boolean Returns true when the given classValue is a subclass of this class or false if the given value is not a valid class or not a subclass of this class'.

staticLuCI.Class.singleton(properties, new_args){LuCI.Class}

luci.js, line 145

Extends this base class with the properties described in properties, instantiates the resulting subclass using the additional optional arguments passed to this function and returns the resulting subclassed Class instance.

This function serves as a convenience shortcut for Class.extend() and subsequent new.

Name Type Description
properties Object.<string, *>

An object describing the properties to add to the new subclass.

new_args * optional repeatable

Specifies arguments to be passed to the subclass constructor as-is in order to instantiate the new subclass.

Returns:
Type Description
LuCI.Class Returns a new LuCI.Class instance extended by the given properties with its prototype set to this base class to enable inheritance.

super(key, callArgs){*|null}

luci.js, line 267

Walks up the parent class chain and looks for a class member called key in any of the parent classes this class inherits from. Returns the member value of the superclass or calls the member as function and returns its return value when the optional callArgs array is given.

This function has two signatures and is sensitive to the amount of arguments passed to it:

  • super('key') - Returns the value of key when found within one of the parent classes.
  • super('key', ['arg1', 'arg2']) - Calls the key() method with parameters arg1 and arg2 when found within one of the parent classes.
Name Type Description
key string

The name of the superclass member to retrieve.

callArgs Array.<*> optional

An optional array of function call parameters to use. When this parameter is specified, the found member value is called as function using the values of this array as arguments.

Throws:

Throws a ReferenceError when callArgs are specified and the found member named by key is not a function value.

Type
ReferenceError
Returns:
Type Description
* | null Returns the value of the found member or the return value of the call to the found method. Returns null when no member was found in the parent class chain or when the call to the superclass method returned null.

varargs(args, offset, extra_args){Array.<*>}

luci.js, line 225

Extract all values from the given argument array beginning from offset and prepend any further given optional parameters to the beginning of the resulting array copy.

Name Type Description
args Array.<*>

The array to extract the values from.

offset number

The offset from which to extract the values. An offset of 0 would copy all values till the end.

extra_args * optional repeatable

Extra arguments to add to prepend to the resultung array.

Returns:
Type Description
Array.<*> Returns a new array consisting of the optional extra arguments and the values extracted from the args array beginning with offset.