Class BoundFunction

All Implemented Interfaces:
Serializable, Callable, ConstProperties<Scriptable>, Constructable, DebuggableObject, Function, PropHolder<Scriptable>, Scriptable, SymbolScriptable

public class BoundFunction extends BaseFunction
The class for results of the Function.bind() operation EcmaScript 5 spec, 15.3.4.5
Author:
Raphael Speyer
See Also:
  • Constructor Details

  • Method Details

    • call

      public Object call(Context cx, Object nt, VarScope scope, Object thisObj, Object[] extraArgs)
      Overrides:
      call in class BaseFunction
    • construct

      public Scriptable construct(Context cx, Object nt, VarScope scope, Object[] extraArgs)
      Description copied from interface: Function
      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.

      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.

      Specified by:
      construct in interface Constructable
      Specified by:
      construct in interface Function
      Overrides:
      construct in class BaseFunction
      Parameters:
      cx - the current Context for this thread
      nt - the new.target for this call,
      scope - an enclosing scope of the caller except when the function is called from a closure.
      extraArgs - the array of arguments
      Returns:
      the allocated object
    • hasInstance

      public boolean hasInstance(Scriptable instance)
      Description copied from class: BaseFunction
      Implements the instanceof operator for JavaScript Function objects.

      foo = new Foo();
      foo instanceof Foo; // true

      Specified by:
      hasInstance in interface Scriptable
      Overrides:
      hasInstance in class BaseFunction
      Parameters:
      instance - The value that appeared on the LHS of the instanceof operator
      Returns:
      true if the "prototype" property of "this" appears in value's prototype chain
    • getLength

      public int getLength()
      Overrides:
      getLength in class BaseFunction
    • getFunctionName

      public String getFunctionName()
      Overrides:
      getFunctionName in class BaseFunction