Package org.mozilla.javascript
Class BaseFunction
java.lang.Object
org.mozilla.javascript.ScriptableObject
org.mozilla.javascript.IdScriptableObject
org.mozilla.javascript.BaseFunction
- All Implemented Interfaces:
Serializable
,Callable
,ConstProperties
,DebuggableObject
,Function
,IdFunctionCall
,Scriptable
- Direct Known Subclasses:
BoundFunction
,FunctionObject
,IdFunctionObject
,NativeFunction
,NativeJavaConstructor
,NativeJavaMethod
,Require
The base class for Function objects
See ECMA 15.3.
- See Also:
-
Field Summary
Fields inherited from class org.mozilla.javascript.ScriptableObject
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
Fields inherited from interface org.mozilla.javascript.Scriptable
NOT_FOUND
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncall
(Context cx, Scriptable scope, Scriptable thisObj, Object[] args) Should be overridden.construct
(Context cx, Scriptable scope, Object[] args) Call the function as a constructor.createObject
(Context cx, Scriptable scope) Creates new script object.execIdCall
(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, Object[] args) 'thisObj' will be null if invoked as constructor, in which case instance of Scriptable should be returned.int
getArity()
Return the name of the class.int
Gets the value returned by calling the typeof operator on this object.boolean
hasInstance
(Scriptable instance) Implements the instanceof operator for JavaScript Function objects.void
setImmunePrototypeProperty
(Object value) Make value as DontEnum, DontDelete, ReadOnly prototype property of this Function objectMethods inherited from class org.mozilla.javascript.IdScriptableObject
activatePrototypeMap, defineOwnProperty, delete, exportAsJSClass, get, getAttributes, has, hasPrototypeMap, initPrototypeConstructor, initPrototypeMethod, initPrototypeValue, put, setAttributes
Methods inherited from class org.mozilla.javascript.ScriptableObject
associateValue, avoidObjectDetection, callMethod, callMethod, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, hasProperty, hasProperty, isConst, isEmpty, isExtensible, isSealed, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sealObject, setAttributes, setAttributes, setAttributes, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.mozilla.javascript.Scriptable
delete, delete, get, get, getDefaultValue, getIds, getParentScope, getPrototype, has, has, put, put, setParentScope, setPrototype
-
Constructor Details
-
BaseFunction
public BaseFunction() -
BaseFunction
-
-
Method Details
-
getClassName
Description copied from class:ScriptableObject
Return the name of the class. This is typically the same name as the constructor. Classes extending ScriptableObject must implement this abstract method.- Specified by:
getClassName
in interfaceScriptable
- Specified by:
getClassName
in classScriptableObject
-
getTypeOf
Gets the value returned by calling the typeof operator on this object.- Overrides:
getTypeOf
in classScriptableObject
- Returns:
- "function" or "undefined" if
ScriptableObject.avoidObjectDetection()
returnstrue
- See Also:
-
hasInstance
Implements the instanceof operator for JavaScript Function objects.foo = new Foo();
foo instanceof Foo; // true
- Specified by:
hasInstance
in interfaceScriptable
- Overrides:
hasInstance
in classScriptableObject
- 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
-
execIdCall
public Object execIdCall(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, Object[] args) Description copied from class:IdScriptableObject
'thisObj' will be null if invoked as constructor, in which case instance of Scriptable should be returned.- Specified by:
execIdCall
in interfaceIdFunctionCall
- Overrides:
execIdCall
in classIdScriptableObject
-
setImmunePrototypeProperty
Make value as DontEnum, DontDelete, ReadOnly prototype property of this Function object -
call
Should be overridden.- Specified by:
call
in interfaceCallable
- Specified by:
call
in interfaceFunction
- 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 JavaScriptthis
objectargs
- the array of arguments- Returns:
- the result of the call
-
construct
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 JavaScriptnew
operator. This method is expected to create a new object and return it. -
createObject
Creates new script object. The default implementation ofconstruct(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, java.lang.Object[])
uses the method to to get the value for thisObj argument when invokingcall(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])
. The methos is allowed to return null to indicate thatcall(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])
will create a new object itself. In this caseconstruct(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, java.lang.Object[])
will set scope and prototype on the resultcall(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])
unless they are already set. -
getArity
public int getArity() -
getLength
public int getLength() -
getFunctionName
-