在浏览器中,有一种便捷的方法可以通过编写以下代码来检查要处理的对象类型:

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中执行相同的操作时,出现以下错误消息:


  在“函数[JavaScript对象]”类型的对象上调用方法“ call(Array)”时出错


为什么我在xPages SSJS中遇到此错误,并且有一种解决方法?

最佳答案

SSJS中的每个全局对象或变量都是Java中定义的类的对象。该声明

Object.prototype.toString.call([]);


适用于JavaScript,不适用于Java。这就是错误的原因。如果希望在SSJS中查找对象所属的类,则可以调用.getClass().getName()

obj.getClass().getName()


您可以找到更多信息here

09-25 17:54