gpt4 book ai didi

javascript - Rhino JS 解释器与 SpiderMonkey 解释器 - 不同的返回值

转载 作者:行者123 更新时间:2023-11-29 22:29:19 27 4
gpt4 key购买 nike

我正在通过终端使用两种不同的 Javascript 解释器 - Rhino 和 SpiderMonkey。因此,当我想在某些对象上调用例如 toString() 和 valueOf() 方法时,我会得到不同的结果,具体取决于解释器。像这样:

**Rhino** 
var f={x:10} f.toString() result [object Object]

f.valueOf() result [object Object]


**SpiderMonkey**
var f={x:10} f.toString() result "[object Object]" //in quotes

f.valueOf() result ({x:10})

我知道 Rhino 是用 Java 写的,而 SpiderMonkey 是用 C 写的。为什么我得到不同的结果?

最佳答案

返回值相同,但显示方式不同。 Rhino 只是打印出 result.toString(),其中 result 是您刚刚评估的表达式的值。在这两种情况下你得到同样的东西因为 f.valueOf() === f 所以 f.valueOf().toString() === f.toString().toString()

SpiderMonkey 似乎正在打印 result.toSource(),它在字符串周围加上引号并将 f.valueOf() 格式化为对象文字。

关于javascript - Rhino JS 解释器与 SpiderMonkey 解释器 - 不同的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7804214/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com