Nashorn引擎中的.toLocaleString

时间:2017-07-28 12:18:09

标签: javascript java-8 nashorn

我有这个测试代码片段:

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()功能吗?或者我必须做一些额外的工作才能让它运行?我在谷歌搜索过,但没找到答案......

1 个答案:

答案 0 :(得分:2)

查看源代码似乎不支持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