Reflect

Reflect (Class)

The Reflect API is a way to manipulate values dynamically through an abstract interface in an untyped manner. Use with care.

See: https://haxe.org/manual/std-reflection.html

Static Members

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.

Name Type
o Dynamic
field String
Returns
Bool

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.

Name Type
o Dynamic
field String
Returns
Dynamic

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.

Name Type
o Dynamic
field String
value Dynamic

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.

Name Type
o Dynamic
field String
Returns
Dynamic

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.

Name Type
o Dynamic
field String
value Dynamic

callMethod(o: Dynamic, func: haxe.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:

(neko) Allows switching the context to o in all cases. (macro) Same as neko for Haxe 3. No context switching in Haxe 4. (js, lua) Require the 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.

Name Type
o Dynamic
func haxe.Function
args Array<Dynamic>
Returns
Dynamic

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.

Name Type
o Dynamic
Returns
Array<String>

isFunction(f: Dynamic): Bool

Returns true if f is a function, false otherwise.

If f is null, the result is false.

Name Type
f Dynamic
Returns
Bool

compare(a: compare.T, b: compare.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.

Name Type
a compare.T
b compare.T
Returns
Int

isObject(v: Dynamic): Bool

Tells if v is an object.

The result is true if v is one of the following:

  • class instance
  • structure
  • Class<T>
  • Enum<T>

Otherwise, including if v is null, the result is false.

Name Type
v Dynamic
Returns
Bool

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.

Name Type
v Dynamic
Returns
Bool

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.

Name Type
o Dynamic
field String
Returns
Bool

copy(o: Null<copy.T>): Null<copy.T>

Copies the fields of structure o.

This is only guaranteed to work on anonymous structures.

If o is null, the result is null.

Name Type
o Null<copy.T>
Returns
Null<copy.T>

makeVarArgs(f: Function): Dynamic

Transform a function taking an array of arguments into a function that can be called with any number of arguments.

Name Type
f Function
Returns
Dynamic

Metadata

Name Parameters
:analyzer ignore