javascript Function.prototype 问题

javascript Function.prototype issue

我开始学习 JavaScript 并有以下问题:

var f = function foo() {}
Console.log(f.__proto__ === Function.prototype) //true 
Console.log(f.__proto__ instance of Function) //false

为什么第 3 个语句使用 instanceof returns 错误。我的理解是实例的 RHS 参考传递的 class 的原型,然后在对象或其原​​型中匹配它。请让我知道我在这里缺少什么? 引用 this 来实现 instance-of.

referred this for implementation of instance-of

好吧,这只是一个错误的实现。 instanceof 运算符不匹配对象本身,仅匹配其原型,而不是构造函数的 .prototype。你的

x instanceof Function

相当于

Function.prototype.isPrototypeOf(x)

f.__proto__(即 Function.prototype)不成立 - 它不是其自身的原型。