在控制台中,它显示为本地函数,但我想知道它们是如何构建的。例如,按空格键滚动页面时执行的代码是什么?这些信息将教会我很多,并且我可以使我的函数更加有效。
在控制台中,它显示为本地函数,但我想知道它们是如何构建的。例如,按空格键滚动页面时执行的代码是什么?这些信息将教会我很多,并且我可以使我的函数更加有效。
一些存储库包括:
请注意,JavaScript 本地函数通常不是用 JavaScript 编写的(大多数情况下为 C 或 C++)。 它们只是通过 API 向 JS 公开。
还要注意,当按下空格键时滚动页面的代码甚至不是向 JS 公开的函数。
toString
时,输出是 ƒ toString() { [native code] }
的原因是因为这些本地函数大多是用 C++ 或 Torque(有些是用 v8)编写的,它们被编译成机器代码,因此不会显示该机器代码,而是输出 [native code]
? - Caleb Taylor虽然这不会显示实际的源代码,但如果您对许多本地 JavaScript 函数的实现方式感兴趣,您可以查看它们所基于的规范:
V8是什么?
JavaScript内置函数应该如何运作的合同在ECMAScript规范中有详细说明(参见Array.every()
的示例)。
有许多不同的JavaScript引擎,每个引擎都有自己特定的ECMAScript实现。最常见的JavaScript引擎包括以下内容(链接指向Array.every()
的代码):