Javascript 标准内置对象的底层代码在哪里?

Where is low level code of Javascript standard built-in objects?


我正在寻找获取 javascript 内置函数的低级代码的方法。
例如,在 'Array.prototype.indexOf()'
的 mdn 站点中有一个 polyfill(我想要这种形式,我以我的方式调用这个低级代码) (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf)

我了解到它是内置方法的底层代码。
这是我的问题,我在哪里可以看到 'String.prototype.toLowerCase()' 方法内部的代码?

这将取决于您的 javascript 实施。

对于 V8,here 是 toLowerCase(和 toUpperCase)的核心

低级函数(例如这些)通常是用 javascript 引擎编写的任何语言编写的 - 这就是它们如此之快的原因。因此,不要期望只有 javascript 的普通开发人员可以轻松阅读一些内容 :)

JavaScript 由标准定义,有许多主要实现。

可以在 TC39 website 中找到该方法和其他方法的定义。它仅在算法上定义,而不是在实际代码中。

也就是说,对于开源实现,您实际上可以查看这些实现的源代码,尽管它们可能是用其他语言编写的,例如 C++。

JavaScript 当前主要的开源实现是 Google's V8, Apple's WebKit and Mozilla's SpiderMonkey

你要找的答案可能不存在,但我会尽力帮助你。

低级功能取决于您使用的引擎。 几个例子是:

  • V8 — 开源,由 Google 开发,用 C++
  • 编写
  • Rhino — 由 Mozilla 基金会管理,开源,完全在 Java
  • 中开发
  • SpiderMonkey — 第一个 Java 脚本引擎,在过去为 Netscape Navigator 提供支持,现在为 Firefox 提供支持
  • JavaScriptCore — 开源,作为 Nitro 销售,由 Apple 为 Safari 开发

我假设您正在寻找了解他们在做什么的功能。如果是这种情况,并且您不了解编写引擎的语言,那么查看这些函数的 polyfill 实现可能是个好主意。这些 写在 javascript 中的,如果您正在寻找这些内容,可能会帮助您理解它们。

祝你好运! :)