在浏览器中,有一种便捷的方法可以通过编写以下代码来检查要处理的对象类型:
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。