-
- 所有已知实现类:
-
AbstractJSObject,ScriptObjectMirror
public interface JSObject该接口可以由任意Java类实现。 Nashorn将像nashorn脚本对象一样处理这些类的对象。 通常的nashorn操作,如obj [i],obj.foo,obj.func(),删除obj.foo将被委派给该接口的适当方法调用。- 从以下版本开始:
- 1.8u40
-
-
方法摘要
所有方法 接口方法 抽象方法 Default Methods 弃用的方法 Modifier and Type 方法 描述 Objectcall(Object thiz, Object... args)将此对象称为JavaScript函数。Objecteval(String s)评估JavaScript表达式。StringgetClassName()ECMA [[Class]]属性default ObjectgetDefaultValue(Class<?> hint)根据ECMAScript 5.1第8.6.2节实现该对象的[[DefaultValue]]方法。ObjectgetMember(String name)检索此JavaScript对象的命名成员。ObjectgetSlot(int index)检索此JavaScript对象的索引成员。booleanhasMember(String name)该对象是否具有命名成员?booleanhasSlot(int slot)该对象是否具有索引属性?booleanisArray()这是一个数组对象吗?booleanisFunction()这是一个函数对象吗?booleanisInstance(Object instance)检查给定对象是否为“this”对象的实例。booleanisInstanceOf(Object clazz)检查此对象是否是给定的“clazz”对象的实例。booleanisStrictFunction()这是一个'使用strict'功能对象吗?Set<String>keySet()返回此对象的所有属性名称集。ObjectnewObject(Object... args)调用这个“构造函数”JavaScript函数来创建一个新对象。voidremoveMember(String name)从此JavaScript对象中删除一个已命名的成员voidsetMember(String name, Object value)在此JavaScript对象中设置一个命名成员voidsetSlot(int index, Object value)在此JavaScript对象中设置索引成员default doubletoNumber()已过时。使用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。
-
-