如何读取标准JavaScript方法背后的代码?

如何读取标准JavaScript方法背后的代码?,javascript,encapsulation,Javascript,Encapsulation,我一直在用谷歌搜索这个,但我似乎找不到一种方法来阅读标准JavaScript方法背后的代码,比如Object.prototype.toString()或Document.getElementsByTagName()。如果不存在这样的方法,在封装JavaScript对象之后,是否有任何方法可以打开其内部复杂性?对于自定义函数,实际上可以调用toString()方法来查看代码。例如,在包含jQuery的页面上: >> $.toString() "function (a,b){return

我一直在用谷歌搜索这个,但我似乎找不到一种方法来阅读标准JavaScript方法背后的代码,比如
Object.prototype.toString()
Document.getElementsByTagName()
。如果不存在这样的方法,在封装JavaScript对象之后,是否有任何方法可以打开其内部复杂性?

对于自定义函数,实际上可以调用toString()方法来查看代码。例如,在包含jQuery的页面上:

>> $.toString()
"function (a,b){return new e.fn.init(a,b,h)}"
但当你打电话时:

>> toString.toString()
你会得到:

"function toString() {
  [native code]
}"

本机代码不是用JS编写的,我猜是C++。您可以在相应的JS解释器项目中看到源代码,例如,..

请求场外资源是offtopic。。。。。但是您可以通过询问如何查看toString的实现来解决这个问题。这些方法的实现方式取决于浏览器供应商,但是如果您进行搜索,V8和SpiderMonkey应该是可用的。@adeneo,因此,每个浏览器供应商都编写自己的JavaScript代码,并且该代码的封装必须适应ECMAScript标准指定的接口?@BriennaHerold yes。ECMA-262指定行为,但不指定实现。事实上,浏览器供应商用自己选择的语言编写自己的引擎,根据ECMA标准(大部分)实现方法。而且至少是公开的,但是弄清楚到底发生了什么,在哪里,并不总是容易的。祝你好运