-
- 所有已知实现类:
-
AbstractJSObject
,ScriptObjectMirror
public interface JSObject
该接口可以由任意Java类实现。 Nashorn将像nashorn脚本对象一样处理这些类的对象。 通常的nashorn操作,如obj [i],obj.foo,obj.func(),删除obj.foo将被委派给该接口的适当方法调用。- 从以下版本开始:
- 1.8u40
-
-
方法摘要
所有方法 接口方法 抽象方法 Default Methods 弃用的方法 Modifier and Type 方法 描述 Object
call(Object thiz, Object... args)
将此对象称为JavaScript函数。Object
eval(String s)
评估JavaScript表达式。String
getClassName()
ECMA [[Class]]属性default Object
getDefaultValue(Class<?> hint)
根据ECMAScript 5.1第8.6.2节实现该对象的[[DefaultValue]]
方法。Object
getMember(String name)
检索此JavaScript对象的命名成员。Object
getSlot(int index)
检索此JavaScript对象的索引成员。boolean
hasMember(String name)
该对象是否具有命名成员?boolean
hasSlot(int slot)
该对象是否具有索引属性?boolean
isArray()
这是一个数组对象吗?boolean
isFunction()
这是一个函数对象吗?boolean
isInstance(Object instance)
检查给定对象是否为“this”对象的实例。boolean
isInstanceOf(Object clazz)
检查此对象是否是给定的“clazz”对象的实例。boolean
isStrictFunction()
这是一个'使用strict'功能对象吗?Set<String>
keySet()
返回此对象的所有属性名称集。Object
newObject(Object... args)
调用这个“构造函数”JavaScript函数来创建一个新对象。void
removeMember(String name)
从此JavaScript对象中删除一个已命名的成员void
setMember(String name, Object value)
在此JavaScript对象中设置一个命名成员void
setSlot(int index, Object value)
在此JavaScript对象中设置索引成员default double
toNumber()
已过时。使用getDefaultValue(Class)
与Number
提示相反。Collection<Object>
values()
返回此对象的所有属性值的集合。
-
-
-
方法详细信息
-
call
Object call(Object thiz, Object... args)
将此对象称为JavaScript函数。 这相当于JavaScript中的“func.apply(thiz,args)”)。- 参数
-
thiz
- '这个'对象传递给函数。 这可能是空的。 -
args
- 方法的参数 - 结果
- 调用结果
-
newObject
Object newObject(Object... args)
调用这个“构造函数”JavaScript函数来创建一个新对象。 这相当于JavaScript中的“new func(arg1,arg2 ...)”。- 参数
-
args
- 方法的参数 - 结果
- 构造函数调用的结果
-
getMember
Object getMember(String name)
检索此JavaScript对象的命名成员。- 参数
-
name
- 的会员 - 结果
- 会员
- 异常
-
NullPointerException
- 如果name为null
-
getSlot
Object getSlot(int index)
检索此JavaScript对象的索引成员。- 参数
-
index
- 要检索的索引槽 - 结果
- 会员
-
hasMember
boolean hasMember(String name)
该对象是否具有命名成员?- 参数
-
name
- 会员名称 - 结果
- 如果此对象具有给定名称的成员,则为true
-
hasSlot
boolean hasSlot(int slot)
该对象是否具有索引属性?- 参数
-
slot
- 索引检查 - 结果
- 如果此对象有一个插槽,则为true
-
removeMember
void removeMember(String name)
从此JavaScript对象中删除一个已命名的成员- 参数
-
name
- 会员姓名 - 异常
-
NullPointerException
- 如果name为null
-
setMember
void setMember(String name, Object value)
在此JavaScript对象中设置一个命名成员- 参数
-
name
- 会员姓名 -
value
- 会员的价值 - 异常
-
NullPointerException
- 如果name为null
-
setSlot
void setSlot(int index, Object value)
在此JavaScript对象中设置索引成员- 参数
-
index
- 成员插槽的索引 -
value
- 会员的价值
-
values
Collection<Object> values()
返回此对象的所有属性值的集合。- 结果
- 一组属性值。
-
isInstance
boolean isInstance(Object instance)
检查给定对象是否为“this”对象的实例。- 参数
-
instance
- 要检查的实例 - 结果
- 如果给定的“实例”是此“函数”对象的实例,则为true
-
isInstanceOf
boolean isInstanceOf(Object clazz)
检查此对象是否是给定的“clazz”对象的实例。- 参数
-
clazz
- clazz来检查 - 结果
- 如果此对象是给定的“clazz”的实例,则为true
-
getClassName
String getClassName()
ECMA [[Class]]属性- 结果
- 该对象的ECMA [[Class]]属性值
-
isFunction
boolean isFunction()
这是一个函数对象吗?- 结果
- 如果此镜像包装ECMAScript函数实例
-
isStrictFunction
boolean isStrictFunction()
这是一个'使用strict'功能对象吗?- 结果
- 如果此镜像代表ECMAScript“use strict”函数,则为true
-
isArray
boolean isArray()
这是一个数组对象吗?- 结果
- 如果此镜像包裹ECMAScript数组对象
-
toNumber
@Deprecated default double toNumber()
已过时。 使用getDefaultValue(Class)
与Number
提示相反。返回此对象的数值。- 结果
- 此对象的数值。
-
getDefaultValue
default Object getDefaultValue(Class<?> hint) throws UnsupportedOperationException
根据ECMAScript 5.1第8.6.2节,实现该对象的[[DefaultValue]]
方法。- 参数
-
hint
- 类型提示。 应该是null
,Number.class
或者String.class
。 - 结果
- 该对象的默认值。
- 异常
-
UnsupportedOperationException
- 如果无法执行转换。 引擎将将此异常转换为JavaScriptTypeError
。
-
-