# Func Object [v1.1.00+]

Represents a user-defined or built-in function which can be called by the script.

A reference to a Func object is also known as a function reference. To retrieve a function reference, use the Func function as in the following example:

    fn := Func("Func")
    MsgBox % fn.Name "() is " (fn.IsBuiltIn ? "built-in." : "user-defined.")

## Call

Calls the function.

    Func.(Parameters)

Parameters and return value are defined by the function.

This syntax is also valid if Func is a function name or a user-defined object which implements __Call.

## Name

Returns the function's name.

    Func.Name

## IsBuiltIn

Returns true if the function is built-in and false otherwise.

    Func.IsBuiltIn

## IsVariadic

Returns true if the function is variadic and false otherwise.

    Func.IsVariadic

## MinParams

Returns the number of required parameters.

    Func.MinParams

## MaxParams

Returns the number of formally-declared parameters for a user-defined function or maximum parameters for a built-in function.

    Func.MaxParams

If the function is variadic, the return value indicates the maximum number of parameters which can be accepted by the function without overflowing into the "variadic*" parameter.

## IsByRef()

Determines whether a parameter is ByRef.

    Func.IsByRef(ParamIndex)

ParamIndex | Optional: the one-based index of a parameter. If omitted, the return value indicates whether the function has any ByRef parameters.
Returns | An empty string if the function is built-in or ParamIndex is invalid; otherwise, a boolean value indicating whether the parameter is ByRef.

## IsOptional()

Determines whether a parameter is optional.

    Func.IsOptional(ParamIndex)

ParamIndex | Optional: the one-based index of a parameter. If omitted, the return value indicates whether the function has any optional parameters.
Returns | An empty string if ParamIndex is invalid; otherwise, a boolean value indicating whether the parameter is optional.

Parameters do not need to be formally declared if the function is variadic. Built-in functions are supported.