- java.lang.Object
-
- jdk.nashorn.api.scripting.AbstractJSObject
-
- All Implemented Interfaces:
-
JSObject
- 已知直接子类:
-
ScriptObjectMirror
public abstract class AbstractJSObject extends Object implements JSObject
这是nashorn ScriptObjectMirror类的基类。 这个类也可以被任意的Java类子类化。 Nashorn将像nashorn脚本对象一样处理这些类的对象。 通常的nashorn操作,如obj [i],obj.foo,obj.func(),delete obj.foo将被委派给该类的适当方法调用。- 从以下版本开始:
- 1.8u40
-
-
构造方法摘要
构造方法 Constructor 描述 AbstractJSObject()
默认构造函数。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 Object
call(Object thiz, Object... args)
将此对象称为JavaScript函数。Object
eval(String s)
评估JavaScript表达式。String
getClassName()
ECMA [[Class]]属性static Object
getDefaultValue(JSObject jsobj, Class<?> hint)
已过时。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对象中设置索引成员double
toNumber()
已过时。Collection<Object>
values()
返回此对象的所有属性值的集合。-
Methods inherited from interface jdk.nashorn.api.scripting.JSObject
getDefaultValue
-
-
-
-
方法详细信息
-
call
public Object call(Object thiz, Object... args)
说明从接口JSObject
复制将此对象称为JavaScript函数。 这相当于JavaScript中的“func.apply(thiz,args)”)。
-
newObject
public Object newObject(Object... args)
说明从接口JSObject
复制调用这个“构造函数”JavaScript函数来创建一个新对象。 这相当于JavaScript中的“new func(arg1,arg2 ...)”。
-
hasSlot
public boolean hasSlot(int slot)
描述从接口JSObject
复制该对象是否具有索引属性?
-
removeMember
public void removeMember(String name)
描述从接口JSObject
复制从此JavaScript对象中删除一个已命名的成员- Specified by:
-
removeMember
在接口JSObject
- 实现要求:
- 这个实现是一个不起作用的
- 参数
-
name
- 会员姓名
-
values
public Collection<Object> values()
说明从接口JSObject
复制返回此对象的所有属性值的集合。
-
isInstance
public boolean isInstance(Object instance)
描述从接口JSObject
复制检查给定对象是否为“this”对象的实例。- Specified by:
-
isInstance
在接口JSObject
- 实现要求:
- 此实现始终返回false
- 参数
-
instance
- 要检查的实例 - 结果
- 如果给定的“实例”是此“函数”对象的实例,则为true
-
isInstanceOf
public boolean isInstanceOf(Object clazz)
描述从接口JSObject
复制检查此对象是否是给定的“clazz”对象的实例。- Specified by:
-
isInstanceOf
在接口JSObject
- 参数
-
clazz
- clazz来检查 - 结果
- 如果此对象是给定的“clazz”的实例,则为true
-
getClassName
public String getClassName()
说明从接口JSObject
复制ECMA [[Class]]属性- Specified by:
-
getClassName
在接口JSObject
- 结果
- 该对象的ECMA [[Class]]属性值
-
isFunction
public boolean isFunction()
说明从接口JSObject
复制这是一个函数对象吗?- Specified by:
-
isFunction
在接口JSObject
- 实现要求:
- 此实现始终返回false
- 结果
- 如果此镜像包装ECMAScript函数实例
-
isStrictFunction
public boolean isStrictFunction()
描述从接口JSObject
复制这是一个'使用strict'功能对象吗?- Specified by:
-
isStrictFunction
在接口JSObject
- 实现要求:
- 此实现始终返回false
- 结果
- 如果此镜像代表ECMAScript“use strict”函数,则为true
-
isArray
public boolean isArray()
说明从接口JSObject
复制这是一个数组对象吗?
-
toNumber
@Deprecated public double toNumber()
已过时。 使用JSObject.getDefaultValue(Class)
与Number
提示相反。返回此对象的数值。
-
getDefaultValue
@Deprecated public static Object getDefaultValue(JSObject jsobj, Class<?> hint)
已过时。 请改用JSObject.getDefaultValue(Class)
。当通过一个AbstractJSObject
时 ,调用其JSObject.getDefaultValue(Class)
方法。 当通过其他JSObject
时 ,将按照ECMAScript 5.1第8.6.2节获得其[[DefaultValue]]
方法。- 参数
-
jsobj
- 其获得[[DefaultValue]]的[[DefaultValue]]
。 -
hint
- 类型提示。 应该是null
,Number.class
或者String.class
。 - 结果
- 该对象的默认值。
- 异常
-
UnsupportedOperationException
- 如果无法执行转换。 引擎将此异常转换为JavaScriptTypeError
。
-
-