我试图调查jQuery代码,所以我使用了这个:
document.write($.constructor);
我得到了这个结果:
function Function() { [native code] }
[native code]
是什么意思?为什么我看不到真正的代码?
使用Google-Chrome
答案 0 :(得分:37)
以解释语言(而不是编译语言)定义函数时。您可以访问定义函数的文件/字符串/文本。
在JavaScript中,您可以阅读已定义函数的定义正文文本。
如果您尝试对JavaScript中的构造包含的功能执行相同操作,则不会将其实现为文本,而是实现为二进制。没有理由显示实现该功能的二进制代码,因为它不可读,甚至可能无法使用。
jQuery扩展了默认的JavaScript行为。这是它受到高度赞赏和赞扬的原因之一,例如与Prototype.js相反。原型是改变 JavaScript的自然行为,当使用Prototype以及依赖于正常功能的其他一些代码时,会产生可能的不一致。
jQuery扩展了JavaScript,使用本机代码实现了功能(性能明智是一件好事)。
答案 1 :(得分:22)
$
,jQuery
只是一个功能。没有调用它,它只是一个普通的功能。函数的构造函数为Function
,因此$.constructor
显示[native code]
。