Interface Constructable

All Known Subinterfaces:
Function, SerializableConstructable
All Known Implementing Classes:
BaseFunction, BoundFunction, Delegator, FunctionObject, IdFunctionObject, JSFunction, KnownBuiltInFunction, LambdaConstructor, LambdaFunction, NativeContinuation, NativeFunction, NativeJavaClass, NativeJavaConstructor, NativeJavaMethod, NativeJavaTopPackage, Require, Synchronizer

public interface Constructable
An interface that can be used to implement a constructor function as a lambda.
  • Method Details

    • construct

      default Scriptable construct(Context cx, VarScope scope, 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
    • construct

      Scriptable construct(Context cx, Object nt, VarScope s, Object[] args)
      Call the function as a constructor.

      If nt is equal to this then this call is equivalent `new f(...arguments), but reflection and super constructor calls may pass in different values.

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