【问题标题】:Where can I find javascript native functions source code? [duplicate]在哪里可以找到 javascript 原生函数源代码? [复制]
【发布时间】:2012-05-04 13:47:16
【问题描述】:

在哪里可以找到原生js函数的源码,比如我想看eval()函数

【问题讨论】:

  • 也要看哪一个...
  • 只想指出:eval 特别是 whole 引擎(或者至少,它是整个引擎的入口点)。有很多 Javascript 引擎可供查看。

标签: javascript function native-code


【解决方案1】:

Chrome 和 Firefox 都是开源的,您可以在这些产品的源代码中查看 javascript 引擎的任何部分的实现。其他浏览器有自己的实现(如 IE),公众无法查看。

Chrome v8 javascript 引擎代码在这里:https://github.com/v8/v8

Firefox SpiderMonkey 引擎代码在这里: https://searchfox.org/mozilla-central/source/js/src

警告,如果您还不熟悉这些产品及其工具,可能需要一段时间才能熟悉到足以找到您要找的东西。

这些链接可能会随着时间的推移而改变,但如果它们移动,可以通过 Google 搜索轻松找到。

【讨论】:

  • 我找到了v8,但没有找到包含window对象功能的代码
  • @Igor - 窗口对象本身不是 Javascript 的一部分。它是一个宿主对象,因此您可以在 Chrome 或 Firefox 的实际实现中找到它的代码,而不是在 JS 引擎中。
  • 两个链接都已过时:(
【解决方案2】:

在 JavaScript 引擎的源代码中。

【讨论】:

  • 我可以在线看代码吗?
  • 请记住,源代码不是 JavaScript ——它通常是 C 或 C++。 (否则它不会是原生的!)
  • @ASD - V8(Google Chrome 中使用的引擎)在这里:code.google.com/p/v8/source/browse
  • @jfriend00,对你来说可能很明显,但对发帖人来说肯定不是很明显,否则他不会问这个问题。如果很明显,那么问题将更接近于“在引擎 X 的源代码中,eval 函数定义在哪里?”。和“告诉我们一些我们还不知道的事情”?这不是给你或已经知道的人的答案,而是给那些不知道的人的答案。
  • @Abdul,JS 引擎确实像 JVM 或 CLR。在 JS 的情况下,该标准没有明确指定 VM 和库必须使用哪种语言编写,但通常都使用本机代码编写。例如尝试console.log(Date) 之类的东西,您很可能会看到function Date() { [native code] }
【解决方案3】:

Javascript 是一种在浏览器代码库中实现的脚本语言。这意味着脚本语言可能有不同的实现,具有不同的质量水平,并且可能对所需内容有不同的解释。因此,许多 Web 开发人员在处理不同的 Web 浏览器时都会感到头疼。

如果浏览器是开源版本,您可以检查浏览器的 Javascript 实现,例如:Chrome、Firefox,如列出的其他答案所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-14
    • 2015-10-12
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    相关资源
    最近更新 更多