为什么返回 false?
function f(){ return f; }
new f() instanceof f; // Prints false instead of true
据我了解,在这种特殊情况下 instanceof
应该检查如下内容:
newObj.__proto__ === f.prototype
。
并且 newObj.__proto__
应在 new f()
调用时自动设置。
最佳答案
构造函数隐式返回this
。
this
是构造函数的一个实例,因此,如果返回 this
,该函数的计算结果将为 true。
您不会返回此
。您返回的 f
不是构造函数的实例,因此表达式返回 false
。
关于奇怪行为的 JavaScript 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747440/