dynamic apply(Function function, List positionalArguments, [ Map<Symbol, dynamic> 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

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