javascript Function.prototype问题

时间:2018-04-21 08:14:16

标签: javascript function prototype instanceof

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

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

为什么使用instanceof的第3个语句返回false。我的理解是实例的RHS参考传递类的原型然后在对象或它的原型中匹配它。请让我知道我在这里缺少什么? 引用this来实现实例。

1 个答案:

答案 0 :(得分:0)

  

引用this来实现

的实例

嗯,这只是一个错误的实施。 instanceof运算符与构造函数的.prototype不匹配对象本身,只与原型相匹配。您的

x instanceof Function

相当于

Function.prototype.isPrototypeOf(x)

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