有没有办法查看 JavaScript 默认方法源代码?
Is there any way to see JavaScript default methods source-code?
有什么方法可以查看 JavaScript 默认方法的源代码吗?例如 .sort() 或 .reverse()。我认为是 C 代码,但我在哪里可以阅读它?
在 SpiderMonkey's JavaScript Array implementation 的代码中(在 Firefox 中使用),您需要先查看 array_sort
和 array_reverse
函数。更一般地说,寻找 array_methods
常量;它有相关功能的索引。
在 V8's JavaScript Array implementation 的代码中(在 Chrome 和 Opera 中使用),您想分别查找 ArraySort
和 ArrayReverse
函数。查找 GlobalArray.prototype
以查找其他函数的索引。
JavaScript Core's JavaScript Array implementation(在 Safari 中使用)有点不寻常,因为 Array.prototype.sort
和它的同类实际上是在 JavaScript 中实现的。您想要的排序函数在此文件中仅命名为 sort
。但是,并不是所有的 Array.prototype
系列函数都可以在该文件中找到;例如,我不确定 reverse
在哪里。
Chakra 实现的源代码(在 IE 中使用)不可用,我怀疑它们可能永远不会可用。 Presto 实现的源代码也是如此(以前在 Opera 中使用,在他们切换到 Blink/V8 之前)。
有什么方法可以查看 JavaScript 默认方法的源代码吗?例如 .sort() 或 .reverse()。我认为是 C 代码,但我在哪里可以阅读它?
在 SpiderMonkey's JavaScript Array implementation 的代码中(在 Firefox 中使用),您需要先查看 array_sort
和 array_reverse
函数。更一般地说,寻找 array_methods
常量;它有相关功能的索引。
在 V8's JavaScript Array implementation 的代码中(在 Chrome 和 Opera 中使用),您想分别查找 ArraySort
和 ArrayReverse
函数。查找 GlobalArray.prototype
以查找其他函数的索引。
JavaScript Core's JavaScript Array implementation(在 Safari 中使用)有点不寻常,因为 Array.prototype.sort
和它的同类实际上是在 JavaScript 中实现的。您想要的排序函数在此文件中仅命名为 sort
。但是,并不是所有的 Array.prototype
系列函数都可以在该文件中找到;例如,我不确定 reverse
在哪里。
Chakra 实现的源代码(在 IE 中使用)不可用,我怀疑它们可能永远不会可用。 Presto 实现的源代码也是如此(以前在 Opera 中使用,在他们切换到 Blink/V8 之前)。