org.mozilla.javascript

## Interface Function

All Superinterfaces:
  Callable, Scriptable

All Known Implementing Classes:
  BaseFunction, BoundFunction, Delegator, FunctionObject, IdFunctionObject, NativeContinuation, NativeFunction, NativeJavaClass, NativeJavaConstructor, NativeJavaMethod, NativeJavaTopPackage, NativeRegExp, Require, Synchronizer

    public interface Function
    extends Scriptable, Callable

This is interface that all functions in JavaScript must implement. The interface provides for calling functions and constructors.

Author:
  Norris Boyd
See Also:
  `Scriptable`

### Field Summary

### Fields inherited from interface org.mozilla.javascript.Scriptable

`NOT_FOUND`

### Method Summary

Methods
`java.lang.Object` `call(Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)` Call the function.
`Scriptable` `construct(Context cx, Scriptable scope, java.lang.Object[] args)` Call the function as a constructor.

### Methods inherited from interface org.mozilla.javascript.Scriptable

`delete, delete, get, get, getClassName, getDefaultValue, getIds, getParentScope, getPrototype, has, has, hasInstance, put, put, setParentScope, setPrototype`

### Method Detail

#### call

    java.lang.Object call(Context cx,
                        Scriptable scope,
                        Scriptable thisObj,
                        java.lang.Object[] args)

Call the function. Note that the array of arguments is not guaranteed to have length greater than 0.

Specified by:
  `call` in interface `Callable`
Parameters:
  `cx` - the current Context for this thread
  `scope` - the scope to execute the function relative to. This is set to the value returned by getParentScope() except when the function is called from a closure.
  `thisObj` - the JavaScript `this` object
  `args` - the array of arguments
Returns:
  the result of the call

#### construct

    Scriptable construct(Context cx,
                       Scriptable scope,
                       java.lang.Object[] args)

Call the function as a constructor. This method is invoked by the runtime in order to satisfy a use of the JavaScript `new` operator. This method is expected to create a new object and return it.

Parameters:
  `cx` - the current Context for this thread
  `scope` - an enclosing scope of the caller except when the function is called from a closure.
  `args` - the array of arguments
Returns:
  the allocated object