- All Superinterfaces:
Callable,Constructable,PropHolder<Scriptable>,Scriptable
- All Known Implementing Classes:
BaseFunction,BoundFunction,Delegator,FunctionObject,IdFunctionObject,JSFunction,KnownBuiltInFunction,LambdaConstructor,LambdaFunction,NativeContinuation,NativeFunction,NativeJavaClass,NativeJavaConstructor,NativeJavaMethod,NativeJavaTopPackage,Require,Synchronizer
This is interface that all functions in JavaScript must implement. The interface provides for
calling functions and constructors.
- Author:
- Norris Boyd
- See Also:
-
Field Summary
Fields inherited from interface org.htmlunit.corejs.javascript.Scriptable
NOT_FOUND -
Method Summary
Modifier and TypeMethodDescriptionCall the function.Call the function as a constructor.default VarScopeReturn the scope in which this function was declared or closed over.default booleanReturn whether this function can be called as a constructor.Methods inherited from interface org.htmlunit.corejs.javascript.Constructable
constructMethods inherited from interface org.htmlunit.corejs.javascript.Scriptable
delete, delete, delete, get, get, get, getAncestor, getClassName, getDefaultValue, getIds, getParentScope, getPrototype, has, has, has, hasInstance, put, put, put, setParentScope, setPrototype
-
Method Details
-
call
Call the function.Note that the array of arguments is not guaranteed to have length greater than 0.
- Specified by:
callin interfaceCallable- Parameters:
cx- the current Context for this threadscope- 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 JavaScriptthisobjectargs- the array of arguments- Returns:
- the result of the call
-
construct
Call the function as a constructor.This method is invoked by the runtime in order to satisfy a use of the JavaScript
newoperator. 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:
constructin interfaceConstructable- Parameters:
cx- the current Context for this threadnt- 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
-
getDeclarationScope
Return the scope in which this function was declared or closed over. This is the "[[Environment]]" defined in https://tc39.es/ecma262/#sec-ecmascript-function-objects. Although this is currently precisely equal to the parent scope (or "__parent__") of an object it is useful to distinguish the two concepts as parent scopes are no longer supported by the spec in general and present a significant barrier to future optimisations. -
isConstructor
default boolean isConstructor()Return whether this function can be called as a constructor.
-