Reflect
Reflect
Available on all platformsThe Reflect API is a way to manipulate values dynamically through an abstract interface in an untyped manner. Use with care.
See:
Static methods
static callMethod (o:Dynamic, func:Function, args:Array<Dynamic>):Dynamic
Call a method with the given object and arguments-
static compare<T> (a:T, b:T ):Int
Compares a
and b
.
If a
is less than b
, the result is negative. If b
is less than a
, the result is positive. If a
and b
are equal, the result is 0.
This function is only defined if a
and b
are of the same type.
If that type is a function, the result is unspecified and Reflect.compareMethods
should be used instead.
For all other types, the result is 0 if a
and b
are equal. If they are not equal, the result depends on the type and is negative if:
- Numeric types: a is less than b
- String: a is lexicographically less than b
- Other: unspecified
If a
and b
are null, the result is 0. If only one of them is null, the result is unspecified.
static compareMethods (f1:Dynamic, f2:Dynamic):Bool
Compares the functions f1
and f2
-
If f1
or f2
are not functions, the result is unspecified-
Otherwise the result is true if f1
and the f2
are physically equal, false otherwise-
static copy<T> (o:T ):T
Copies the fields of structure o
.
This is only guaranteed to work on anonymous structures.
If o
is null, the result is unspecified.
static deleteField (o:Dynamic, field:String):Bool
Removes the field named field
from structure o
-
This method is only guaranteed to work on anonymous structures-
If o
or field
are null, the result is unspecified-
static field (o:Dynamic, field:String):Dynamic
Returns the value of the field named field
on object o
-
If o
is not an object or has no field named field
, the result is null-
If the field is defined as a property, its accessors are ignored- Refer to Reflect.getProperty
for a function supporting property accessors.
If field
is null, the result is unspecified.
(As3) If used on a property field, the getter will be invoked. It is not possible to obtain the value directly.
static fields (o:Dynamic):Array<String>
Returns the fields of structure o
.
This method is only guaranteed to work on anonymous structures. Refer to Type.getInstanceFields
for a function supporting class instances.
If o
is null, the result is unspecified.
static getProperty (o:Dynamic, field:String):Dynamic
Returns the value of the field named field
on object o
, taking property getter functions into account-
If the field is not a property, this function behaves like Reflect.field
, but might be slower.
If o
or field
are null, the result is unspecified.
static hasField (o:Dynamic, field:String):Bool
Tells if structure o
has a field named field
-
This is only guaranteed to work for anonymous structures- Refer to Type.getInstanceFields
for a function supporting class instances.
If o
or field
are null, the result is unspecified.
static isEnumValue (v:Dynamic):Bool
Tells if v
is an enum value-
The result is true if v
is of type EnumValue, i-e- an enum constructor-
Otherwise, including if v
is null, the result is false-
static isFunction (f:Dynamic):Bool
Returns true if f
is a function, false otherwise-
If f
is null, the result is false-
static isObject (v:Dynamic):Bool
Tells if v
is an object-
The result is true if v
is one of the following:
Otherwise, including if v
is null, the result is false-
static makeVarArgs (f:Array<Dynamic> ‑> Dynamic):Dynamic
static makeVarArgs (f:Array<Dynamic> ‑> Void):Dynamic
Transform a function taking an array of arguments into a function that can be called with any number of arguments-
static setField (o:Dynamic, field:String, value:Dynamic):Void
Sets the field named field
of object o
to value value
-
If o
has no field named field
, this function is only guaranteed to work for anonymous structures-
If o
or field
are null, the result is unspecified-
(As3) If used on a property field, the setter will be invoked- It is not possible to set the value directly-
static setProperty (o:Dynamic, field:String, value:Dynamic):Void
Sets the field named field
of object o
to value value
, taking property setter functions into account-
If the field is not a property, this function behaves like Reflect.setField
, but might be slower.
If field
is null, the result is unspecified.
© 2005–2016 Haxe Foundation
Licensed under a MIT license.
http://api.haxe.org/Reflect.html