如何查看函数concat中的代码?它是如何做的呢?有没有人拥有代码的副本或在浏览器控制台中查看它的方法?
console.dir不允许我访问
console.dir(Array.prototype.concat);
function concat() { [native code] }
arguments: null
caller: null
length: 1
name: "concat"
__proto__: function Empty() {}
<function scope>
我无法或不知道如何检查这一点,但必须有一种方法可以挖掘javascript函数
答案 0 :(得分:2)
Array
附带JavaScript,因此它取决于您的JavaScript引擎如何实现。 JS引擎可以以任何方式自由实现它。有可能它不使用JavaScript,因为它可能太慢或者可能无法实现,因为您需要一个具有您尝试实现它的功能的JavaScript引擎(see bootstrapping)。
在大多数浏览器中,许多JavaScript函数都是用C / C ++实现的。以下是Chrome / Chromium系列浏览器的示例:https://cs.chromium.org/chromium/src/v8/src/builtins/builtins-array.cc?q=Array.prototype.concat&sq=package:chromium&dr=C&l=635
Chromebootstrapper
中的ArrayConcatJS
来电中的 Array.prototype.concat
变为InstallFunctions
。对此的称赞转到apsillers。
Array.concat
js_concat()
方法{{1}}(如1322)。