奇怪行为的 JavaScript 实例

标签 javascript prototype instanceof

为什么返回 false?

function f(){ return f; }
new f() instanceof f; // Prints false instead of true 

据我了解,在这种特殊情况下 instanceof 应该检查如下内容:

newObj.__proto__ === f.prototype

并且 newObj.__proto__ 应在 new f() 调用时自动设置。

最佳答案

构造函数隐式返回thisthis 是构造函数的一个实例,因此,如果返回 this,该函数的计算结果将为 true。

不会返回。您返回的 f 不是构造函数的实例,因此表达式返回 false

关于奇怪行为的 JavaScript 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747440/

相关文章:

javascript - JavaScript 中匿名函数的替代方案

javascript - 使用 jQuery 获取由变量定义的文本输入的值

c++ - 声明类实例的两种方式的区别

javascript - 如何在多个原型(prototype)函数之间正确共享变量?

java - 这是使用instanceof的情况吗?

java - 如何对数组列表的成员执行instanceof 操作?

Java实例化运算符

javascript - angularJS ng重复字段和特殊字符

javascript - 无法在 nextjs 中导入模块

Javascript 原型(prototype)示例 - 改变标准 JavaScript 对象的原型(prototype)