"[本地代码]"是什么意思?

gdo*_*ica 59 javascript jquery native-code

我试着调查jQuery代码,所以我使用了这个:

document.write($.constructor);
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

我得到了这个结果:

function Function() { [native code] }
Run Code Online (Sandbox Code Playgroud)

什么[native code]意思?为什么我看不到真正的代码?

经过测试 Google-Chrome

Mih*_*ncu 46

以解释语言(而不是编译语言)定义函数时.您可以访问定义该功能的文件/字符串/文本.

例如,在JavaScript中,您可以读取已定义函数的定义正文文本.

如果您尝试对JavaScript中构造包含的函数执行相同操作,则不会将其实现为文本而是实现为二进制.没有理由显示实现该功能的二进制代码,因为它不可读,甚至可能无法使用.

jQuery扩展了默认的JavaScript行为.这是它受到高度赞赏和赞扬的原因之一,例如与Prototype.js相反.Prototype正在改变 JavaScript的自然行为,当使用Prototype和依赖于正常功能的其他代码时,会产生可能的不一致.

TL;博士:

jQuery扩展了JavaScript,使用本机代码实现了功能(性能明智是一件好事).

  • 这个答案很好地解释了"[本机代码]"的神秘面纱.谢谢. (4认同)

Rob*_*b W 23

$,jQuery只是一个功能.没有调用它,它只是一个普通的功能.Function因此$.constructor显示了函数的构造函数[native code].