    import Shadow from 'f.lux/src/Shadow.js'

public class | source

# Shadow

#### Direct Subclass:

CollectionShadow, IndexedShadow, IsolatedShadow, MapShadow, src/collection/PojoEndpointProperty.js~PojoEndpointShadow, TransientShadow, TransientsShadow

#### Indirect Subclass:

ArrayShadow

The base class for all shadow state properties. The api is purposefully spartan so as to not polute the namespace of shadow state objects. This class does provide implementations for the standard javascript methods `toJSON()` and `toString()`. `toJson()` is very useful in the javascript console to obtain the actual state being proxied by this shadow state property.

Each non-primitive shadow state property exposes four special, f.lux specific methods that are named so as to be unlikely to collide with normal method names:

- `_()` - gets this `Shadow` object. This method may seem superflous but when using the `@shadow` decorator this allows property methods to be written to work when invoked through the shadow state property or directly using `this` within `Property` methods.
- `__()` - gets the backing ShadowImpl instance for this shadow property
- `$()` - gets the Access object for obtaining information about a property.
- `$$()` - gets the Property managing this shadow state property.

#### See:

- ArrayShadow
- IndexedShadow
- MapShadow

## Constructor Summary

Public Constructor
public | constructor(impl: *) |

## Member Summary

Public Members
public | [_impl]: * |

## Method Summary

Public Methods
public | $(): Access Gets the Access object for obtaining information about a property. |
public | $$(): Property Gets the Property managing this shadow state property. |
public | toJSON(): Object | Array Gets the actual state property being proxied by this shadow state property. |
public | toString(): * |

## Public Constructors

### public constructor(impl: *) source

#### Params:

Name | Type | Attribute | Description
impl | * |  |

## Public Members

### public [_impl]: * source

## Public Methods

### public $(): Access source

Gets the Access object for obtaining information about a property.

#### Return:

Access

### public $$(): Property source

Gets the Property managing this shadow state property.

#### Return:

Property

### public toJSON(): Object | Array source

Gets the actual state property being proxied by this shadow state property.

Note: this is the actual state so critical it is not mutated in any way.

#### Return:

Object | Array

### public toString(): * source

#### Return:

*