我正在阅读 Douglas Crockford 的JavaScript: The Good Parts,我在第 4 章“函数”中遇到了一些我不太理解的内容。
在本章开头附近:
函数对象
JavaScript 中的函数是对象。对象是名称/值对的集合,具有指向原型对象的隐藏链接。从对象字面量生成的对象链接到 Object.prototype。函数对象链接到 Function.prototype(它本身链接到 Object.prototype)。
现在这似乎很简单,直到我尝试了这个:
console.log({}.prototype); // => undefined, ???
console.log({key: 'val'}.prototype); // => undefined
console.log(Object.prototype); // => [object Object]
console.log(function(){}.prototype); // => [object Object]
console.log(Function.prototype); // => function Empty() {}
console.log(function(){}.prototype === Function.prototype); // => false
console.log(function(){}.prototype === Object.prototype); // => false
有人可以根据摘录来解释这一点吗?根据我的阅读,对象文字应该有原型,并且应该以某种方式链接到 Object.prototype。另外,function(){}.prototype 和 Function.prototype 之间不应该有某种联系吗?Function.prototype 和 Object.prototype 之间的联系是什么?