在浏览器中,有一种方便的方法可以通过编写以下代码来检查您正在处理的对象类型:
Object.prototype.toString.call([]); // "[object Array]"
在xPages SSJS中
<xp:text escape="true" id="computedField1">
<xp:this.value>
<![CDATA[#{javascript:Object.prototype.toString.call([]);}]]>
</xp:this.value>
</xp:text>
当我在xPages SSJS中做同样的事情时,我收到以下错误消息:
在'function [JavaScript Object]'
类型的对象上调用方法'call(Array)'时出错
为什么我在xPages SSJS中收到此错误,有没有办法绕过它?
答案 0 :(得分:4)
SSJS中的每个全局对象或变量都是Java中定义的类的对象。声明
Object.prototype.toString.call([]);
适用于JavaScript而不适用于Java。这就是错误的原因。如果您想在SSJS中找到该对象所属的类,则可以调用.getClass().getName()
。
obj.getClass().getName()
您可以找到更多信息here。