Javascript 引擎盖下的Array.prototype.concat()
如何查看函数concat中的代码?它是怎么做的?是否有人拥有代码的副本或在浏览器控制台中查看代码的方法 console.dir不允许我访问过去Javascript 引擎盖下的Array.prototype.concat(),javascript,console,prototype,Javascript,Console,Prototype,如何查看函数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&g
console.dir(Array.prototype.concat);
function concat() { [native code] }
arguments: null
caller: null
length: 1
name: "concat"
__proto__: function Empty() {}
<function scope>
console.dir(Array.prototype.concat);
函数concat(){[本机代码]}
参数:null
呼叫方:空
长度:1
名称:“康卡特”
__proto_;:函数Empty(){}
我不知道或者不知道如何检查这一点,但一定有办法深入了解javascript附带的javascript函数,所以这取决于javascript引擎如何实现。JS引擎可以自由地以任何方式实现它。很可能它不使用JavaScript,因为这可能太慢,或者可能不可能,因为您需要一个JavaScript引擎,该引擎具有您试图实现的功能来实现它() 在大多数浏览器中,许多JavaScript函数都是用C/C++实现的。以下是Chrome/Chrome系列浏览器的源代码示例:
ArrayConcatJS
在Chrome的InstallFunctions
调用中变成Array.prototype.concat
。这是我的荣幸
<>代码>数组> CONTAG/CODE >这里可以找到:在方法<代码> JSyCutAtter()/Cube >(类似1322)。确实:对于你使用的任何引擎,都浏览一下C++代码。(如果你的JS引擎没有发布它的源代码,那你就倒霉了。)的可能重复为了狭隘地尝试回答你的特定问题,下面是Chromium对
concat
的实现:(ArrayConcatJS
变成Array.prototype.concat
在InstallFunctions
调用第1519行)