Expando class

An Expando allows adding new properties to objects.

Does not work on numbers, strings, booleans or null.

An Expando does not hold on to the added property value after an object becomes inaccessible.

Since you can always create a new number that is identical to an existing number, it means that an expando property on a number could never be released. To avoid this, expando properties cannot be added to numbers. The same argument applies to strings, booleans and null, which also have literals that evaluate to identical values when they occur more than once.

There is no restriction on other classes, even for compile time constant objects. Be careful if adding expando properties to compile time constants, since they will stay alive forever.

Constructors

Expando([String name ])

Creates a new Expando. The optional name is only used for debugging purposes and creating two different Expandos with the same name yields two Expandos that work on different properties of the objects they are used on.

Properties

nameString
final

The name of the this Expando as passed to the constructor. If no name was passed to the constructor, the name is null.

hashCodeint
read-only, inherited

The hash code for this object.

runtimeTypeType
read-only, inherited

A representation of the runtime type of the object.

Operators

operator [](Object object) → T

Gets the value of this Expando's property on the given object. If the object hasn't been expanded, the method returns null.

operator []=(Object object, T value) → void

Sets the value of this Expando's property on the given object. Properties can effectively be removed again by setting their value to null.

operator ==(other) → bool
inherited

The equality operator.

Methods

toString() → String

Expando toString method override.

noSuchMethod(Invocation invocation) → dynamic
inherited

Invoked when a non-existent method or property is accessed.

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-core/Expando-class.html