javascript - setTimeout 在 SpiderMonkey 中不起作用

标签 javascript mozilla spidermonkey

我已经按照 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/

相关文章:

javascript - 为什么{键:value} ["key"] doesn't work?

javascript - 使用 javascript 调用 XQuery

ssl - 将新的客户端证书添加到 NSS 数据库

spidermonkey - 蜘蛛猴引擎中 JS_CANONICALIZE_NAN 的目的是什么?

JavaScript 性能 : Modulus operation of negative Number within decrementing loop slowing the code by more than 100%

c++ - 如何使用 spidermonkey 执行用户定义的 javascript 代码

javascript - 在构建 React 应用程序时将绝对路径附加到 css/js 文件

javascript - 为 mask 图像分配更高的 z-index

javascript - Mozilla Javascript 性能 NEW OS.File vs OLD nsIFile 超过 3000 个文件