在Nashorn引擎中的.toLocaleString方法

3

我有这段测试代码片段:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
Object o = engine.eval("var i = 1000; i.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' });");
System.out.println(o); 

当我开始测试时,我会得到这个结果:

1000

那么,Nashorn不能执行.toLocaleString()函数吗?或者我需要做一些额外的工作来让它运行?我在谷歌上搜索了一下,但没有找到答案...

你正在运行哪个版本的Nashorn? - evolutionxbox
我使用的版本是1.8.0_141。 - Chris
1个回答

4

从源代码来看,似乎它不支持toLocaleString函数。 当您调用函数时,Nashorn将调用jdk.nashorn.internal.objects.NativeNumber.toLocaleString(Object)。此方法只是将输入对象(即数字)转换为字符串表示形式。以下是代码:

public static String toLocaleString(Object self) {
  return JSType.toString(getNumberValue(self));
}

这是我刚刚查看的版本:

C:...\java\bin>jjs -version

nashorn 1.8.0_121

注:该文本为已翻译内容,保留原有的HTML标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接