Module jdk.scripting.nashorn
Package jdk.nashorn.api.scripting

# Interface JSObject

All Known Implementing Classes:
  `AbstractJSObject`, `ScriptObjectMirror`

    @Deprecated(since="11",
                forRemoval=true)
    public interface JSObject

Deprecated, for removal: This API element is subject to removal in a future version.
Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
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 Type | Method | Description
--- | --- | ---
`Object` | `call​(Object thiz, Object... args)` | Deprecated, for removal: This API element is subject to removal in a future version. Call this object as a JavaScript function.
`Object` | `eval​(String s)` | Deprecated, for removal: This API element is subject to removal in a future version. Evaluate a JavaScript expression.
`String` | `getClassName()` | Deprecated, for removal: This API element is subject to removal in a future version. ECMA [[Class]] property
`default Object` | `getDefaultValue​(Class<?> hint)` | Deprecated, for removal: This API element is subject to removal in a future version. Implements this object's `[[DefaultValue]]` method as per ECMAScript 5.1 section 8.6.2.
`Object` | `getMember​(String name)` | Deprecated, for removal: This API element is subject to removal in a future version. Retrieves a named member of this JavaScript object.
`Object` | `getSlot​(int index)` | Deprecated, for removal: This API element is subject to removal in a future version. Retrieves an indexed member of this JavaScript object.
`boolean` | `hasMember​(String name)` | Deprecated, for removal: This API element is subject to removal in a future version. Does this object have a named member?
`boolean` | `hasSlot​(int slot)` | Deprecated, for removal: This API element is subject to removal in a future version. Does this object have a indexed property?
`boolean` | `isArray()` | Deprecated, for removal: This API element is subject to removal in a future version. Is this an array object?
`boolean` | `isFunction()` | Deprecated, for removal: This API element is subject to removal in a future version. Is this a function object?
`boolean` | `isInstance​(Object instance)` | Deprecated, for removal: This API element is subject to removal in a future version. Checking whether the given object is an instance of 'this' object.
`boolean` | `isInstanceOf​(Object clazz)` | Deprecated, for removal: This API element is subject to removal in a future version. Checking whether this object is an instance of the given 'clazz' object.
`boolean` | `isStrictFunction()` | Deprecated, for removal: This API element is subject to removal in a future version. Is this a 'use strict' function object?
`Set<String>` | `keySet()` | Deprecated, for removal: This API element is subject to removal in a future version. Returns the set of all property names of this object.
`Object` | `newObject​(Object... args)` | Deprecated, for removal: This API element is subject to removal in a future version. Call this 'constructor' JavaScript function to create a new object.
`void` | `removeMember​(String name)` | Deprecated, for removal: This API element is subject to removal in a future version. Remove a named member from this JavaScript object
`void` | `setMember​(String name, Object value)` | Deprecated, for removal: This API element is subject to removal in a future version. Set a named member in this JavaScript object
`void` | `setSlot​(int index, Object value)` | Deprecated, for removal: This API element is subject to removal in a future version. Set an indexed member in this JavaScript object
`default double` | `toNumber()` | Deprecated. use `getDefaultValue(Class)` with `Number` hint instead.
`Collection<Object>` | `values()` | Deprecated, for removal: This API element is subject to removal in a future version. Returns the set of all property values of this object.

## Method Details

### call

Object call​(Object thiz, Object... args)
Deprecated, for removal: This API element is subject to removal in a future version.
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

Object newObject​(Object... args)
Deprecated, for removal: This API element is subject to removal in a future version.
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

Object eval​(String s)
Deprecated, for removal: This API element is subject to removal in a future version.
Evaluate a JavaScript expression.

Parameters:
  `s` - JavaScript expression to evaluate
Returns:
  evaluation result

### getMember

Object getMember​(String name)
Deprecated, for removal: This API element is subject to removal in a future version.
Retrieves a named member of this JavaScript object.

Parameters:
  `name` - of member
Returns:
  member
Throws:
  `NullPointerException` - if name is null

### getSlot

Object getSlot​(int index)
Deprecated, for removal: This API element is subject to removal in a future version.
Retrieves an indexed member of this JavaScript object.

Parameters:
  `index` - index slot to retrieve
Returns:
  member

### hasMember

boolean hasMember​(String name)
Deprecated, for removal: This API element is subject to removal in a future version.
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)
Deprecated, for removal: This API element is subject to removal in a future version.
Does this object have a indexed property?

Parameters:
  `slot` - index to check
Returns:
  true if this object has a slot

### removeMember

void removeMember​(String name)
Deprecated, for removal: This API element is subject to removal in a future version.
Remove a named member from this JavaScript object

Parameters:
  `name` - name of the member
Throws:
  `NullPointerException` - if name is null

### setMember

void setMember​(String name, Object value)
Deprecated, for removal: This API element is subject to removal in a future version.
Set a named member in this JavaScript object

Parameters:
  `name` - name of the member
  `value` - value of the member
Throws:
  `NullPointerException` - if name is null

### setSlot

void setSlot​(int index, Object value)
Deprecated, for removal: This API element is subject to removal in a future version.
Set an indexed member in this JavaScript object

Parameters:
  `index` - index of the member slot
  `value` - value of the member

### keySet

Set<String> keySet()
Deprecated, for removal: This API element is subject to removal in a future version.
Returns the set of all property names of this object.

Returns:
  set of property names

### values

Collection<Object> values()
Deprecated, for removal: This API element is subject to removal in a future version.
Returns the set of all property values of this object.

Returns:
  set of property values.

### isInstance

boolean isInstance​(Object instance)
Deprecated, for removal: This API element is subject to removal in a future version.
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

boolean isInstanceOf​(Object clazz)
Deprecated, for removal: This API element is subject to removal in a future version.
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()
Deprecated, for removal: This API element is subject to removal in a future version.
ECMA [[Class]] property

Returns:
  ECMA [[Class]] property value of this object

### isFunction

boolean isFunction()
Deprecated, for removal: This API element is subject to removal in a future version.
Is this a function object?

Returns:
  if this mirror wraps a ECMAScript function instance

### isStrictFunction

boolean isStrictFunction()
Deprecated, for removal: This API element is subject to removal in a future version.
Is this a 'use strict' function object?

Returns:
  true if this mirror represents a ECMAScript 'use strict' function

### isArray

boolean isArray()
Deprecated, for removal: This API element is subject to removal in a future version.
Is this an array object?

Returns:
  if this mirror wraps a ECMAScript array object

### toNumber

@Deprecated default double toNumber()
Deprecated.
use `getDefaultValue(Class)` with `Number` hint instead.
Returns this object's numeric value.

Returns:
  this object's numeric value.

### getDefaultValue

default Object getDefaultValue​(Class<?> hint) throws UnsupportedOperationException
Deprecated, for removal: This API element is subject to removal in a future version.
Implements this object's `[[DefaultValue]]` method as per ECMAScript 5.1 section 8.6.2.

Parameters:
  `hint` - the type hint. Should be either `null`, `Number.class` or `String.class`.
Returns:
  this object's default value.
Throws:
  `UnsupportedOperationException` - if the conversion can't be performed. The engine will convert this exception into a JavaScript `TypeError`.