dynamic apply(
Function function,
List positionalArguments,
[Map<Symbol> namedArguments]
)

Dynamically call function with the specified arguments.

Acts the same as calling function with positional arguments corresponding to the elements of positionalArguments and named arguments corresponding to the elements of namedArguments.

This includes giving the same errors if function isn't callable or if it expects different parameters.

Example:

  Map<Symbol, dynamic> namedArguments = new Map<Symbol, dynamic>();
  namedArguments[const Symbol("f")] = 4;
  namedArguments[const Symbol("g")] = 5;
  Function.apply(foo, [1,2,3], namedArguments);

gives exactly the same result as

  foo(1, 2, 3, f: 4, g: 5).

If positionalArguments is null, it's considered an empty list. If namedArguments is omitted or null, it is considered an empty map.

Source

/**
 * Dynamically call [function] with the specified arguments.
 *
 * Acts the same as calling function with positional arguments
 * corresponding to the elements of [positionalArguments] and
 * named arguments corresponding to the elements of [namedArguments].
 *
 * This includes giving the same errors if [function] isn't callable or
 * if it expects different parameters.
 *
 * Example:
 *       Map<Symbol, dynamic> namedArguments = new Map<Symbol, dynamic>();
 *       namedArguments[const Symbol("f")] = 4;
 *       namedArguments[const Symbol("g")] = 5;
 *       Function.apply(foo, [1,2,3], namedArguments);
 *
 * gives exactly the same result as
 *       foo(1, 2, 3, f: 4, g: 5).
 *
 * If [positionalArguments] is null, it's considered an empty list.
 * If [namedArguments] is omitted or null, it is considered an empty map.
 */
external static apply(Function function,
                      List positionalArguments,
                      [Map<Symbol, dynamic> namedArguments]);