- All Known Implementing Classes:
AbstractJSObject
,ScriptObjectMirror
public interface JSObject
This interface can be implemented by an arbitrary Java class. Nashorn will
treat objects of such classes just like nashorn script objects. Usual nashorn
operations like obj[i], obj.foo, obj.func(), delete obj.foo will be delegated
to appropriate method call of this interface.
- Since:
- 1.8u40
-
Method Summary
Modifier and TypeMethodDescriptionCall this object as a JavaScript function.Evaluate a JavaScript expression.ECMA [[Class]] propertydefault Object
getDefaultValue
(Class<?> hint) Implements this object's[[DefaultValue]]
method as per ECMAScript 5.1 section 8.6.2.Retrieves a named member of this JavaScript object.getSlot
(int index) Retrieves an indexed member of this JavaScript object.boolean
Does this object have a named member?boolean
hasSlot
(int slot) Does this object have a indexed property?boolean
isArray()
Is this an array object?boolean
Is this a function object?boolean
isInstance
(Object instance) Checking whether the given object is an instance of 'this' object.boolean
isInstanceOf
(Object clazz) Checking whether this object is an instance of the given 'clazz' object.boolean
Is this a 'use strict' function object?keySet()
Returns the set of all property names of this object.Call this 'constructor' JavaScript function to create a new object.void
removeMember
(String name) Remove a named member from this JavaScript objectvoid
Set a named member in this JavaScript objectvoid
Set an indexed member in this JavaScript objectdefault double
toNumber()
Deprecated.values()
Returns the set of all property values of this object.
-
Method Details
-
call
Call this object as a JavaScript function. This is equivalent to 'func.apply(thiz, args)' in JavaScript.- Parameters:
thiz
- 'this' object to be passed to the function. This may be null.args
- arguments to method- Returns:
- result of call
-
newObject
Call this 'constructor' JavaScript function to create a new object. This is equivalent to 'new func(arg1, arg2...)' in JavaScript.- Parameters:
args
- arguments to method- Returns:
- result of constructor call
-
eval
Evaluate a JavaScript expression.- Parameters:
s
- JavaScript expression to evaluate- Returns:
- evaluation result
-
getMember
Retrieves a named member of this JavaScript object.- Parameters:
name
- of member- Returns:
- member
- Throws:
NullPointerException
- if name is null
-
getSlot
Retrieves an indexed member of this JavaScript object.- Parameters:
index
- index slot to retrieve- Returns:
- member
-
hasMember
Does this object have a named member?- Parameters:
name
- name of member- Returns:
- true if this object has a member of the given name
-
hasSlot
boolean hasSlot(int slot) Does this object have a indexed property?- Parameters:
slot
- index to check- Returns:
- true if this object has a slot
-
removeMember
Remove a named member from this JavaScript object- Parameters:
name
- name of the member- Throws:
NullPointerException
- if name is null
-
setMember
Set a named member in this JavaScript object- Parameters:
name
- name of the membervalue
- value of the member- Throws:
NullPointerException
- if name is null
-
setSlot
Set an indexed member in this JavaScript object- Parameters:
index
- index of the member slotvalue
- value of the member
-
keySet
Returns the set of all property names of this object.- Returns:
- set of property names
-
values
Collection<Object> values()Returns the set of all property values of this object.- Returns:
- set of property values.
-
isInstance
Checking whether the given object is an instance of 'this' object.- Parameters:
instance
- instance to check- Returns:
- true if the given 'instance' is an instance of this 'function' object
-
isInstanceOf
Checking whether this object is an instance of the given 'clazz' object.- Parameters:
clazz
- clazz to check- Returns:
- true if this object is an instance of the given 'clazz'
-
getClassName
String getClassName()ECMA [[Class]] property- Returns:
- ECMA [[Class]] property value of this object
-
isFunction
boolean isFunction()Is this a function object?- Returns:
- if this mirror wraps a ECMAScript function instance
-
isStrictFunction
boolean isStrictFunction()Is this a 'use strict' function object?- Returns:
- true if this mirror represents a ECMAScript 'use strict' function
-
isArray
boolean isArray()Is this an array object?- Returns:
- if this mirror wraps a ECMAScript array object
-
toNumber
Deprecated.usegetDefaultValue(Class)
withNumber
hint instead.Returns this object's numeric value.- Returns:
- this object's numeric value.
-
getDefaultValue
Implements this object's[[DefaultValue]]
method as per ECMAScript 5.1 section 8.6.2.- Parameters:
hint
- the type hint. Should be eithernull
,Number.class
orString.class
.- Returns:
- this object's default value.
- Throws:
UnsupportedOperationException
- if the conversion can't be performed. The engine will convert this exception into a JavaScriptTypeError
.
-
getDefaultValue(Class)
withNumber
hint instead.