我已经按照 this 在 mac 上构建了 spidermonkey .在 build-release/dist/bin 下,可执行文件是 js24 而不是 js(根据 this)。
但是,当我使用 js24 运行 shell 时,像 1+2 这样的表达式是有效的,但是当我尝试像 setTimeout(function () {}, 500) 这样的东西时,我得到了,
ReferenceError: setTimeout is not defined
我做错了什么?我认为行为与节点外壳相同。
最佳答案
将评论中的优秀答案保存为实际答案,以便将此问题标记为已回答。
setTimeout 不是 JavaScript 语言的一部分,它是浏览器的 window
对象的一部分,它是网页 JavaScript 代码的全局对象:https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers.setTimeout
node.js 有一个类似的 API:http://nodejs.org/docs/latest/api/timers.html#timers_settimeout_callback_delay_arg
要在 SpiderMonkey 中实现 setTimeout,您可以使用以下代码: https://gist.github.com/kevinoid/3146420
关于javascript - setTimeout 在 SpiderMonkey 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24344035/