Available on all platforms
The Reflect API is a way to manipulate values dynamically through an abstract interface in an untyped manner. Use with care.
See also:
staticcallMethod(o:Dynamic, func:Function, args:Array<Dynamic>):Dynamic
Call a method func
with the given arguments args
.
The object o
is ignored in most cases. It serves as the this
-context in the following situations:
o
in all cases.o
argument if func
does not, but should have a context. This can occur by accessing a function field natively, e.g. through Reflect.field
or by using (object : Dynamic).field
. However, if func
has a context, o
is ignored like on other targets.staticcompare<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:
If a
and b
are null, the result is 0. If only one of them is null, the result is unspecified.
staticcompareMethods(f1:Dynamic, f2:Dynamic):Bool
Compares the functions f1
and f2
.
If f1
or f2
are null, the result is false. 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.
If f1
or f2
are member method closures, the result is true if they are closures of the same method on the same object value, false otherwise.
staticcopy<T>(o:Null<T>):Null<T>
Copies the fields of structure o
.
This is only guaranteed to work on anonymous structures.
If o
is null, the result is null
.
staticdeleteField(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.
staticfield(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.
staticfields(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.
staticgetProperty(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.
statichasField(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.
staticisEnumValue(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.
staticisFunction(f:Dynamic):Bool
Returns true if f
is a function, false otherwise.
If f
is null, the result is false.
staticisObject(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.
staticmakeVarArgs(f:Array<Dynamic> ‑> Dynamic):Dynamic
staticmakeVarArgs(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.
staticsetField(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.
staticsetProperty(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–2020 Haxe Foundation
Licensed under a MIT license.
https://api.haxe.org/Reflect.html