Javascript instanceof 运算符函数返回自身

标签 javascript

<分区>

我正试图找到一个很好的解释为什么 new foo() instanceof foo 返回 false。

function foo() {
  return foo;
}
new foo() instanceof foo;

如果函数 foo 被定义为,它会按预期返回 true

function foo(){
  return 1;
}

最佳答案

后者并没有真正返回 1 因为构造函数是 not allowed to return value types .返回值被忽略,你得到的是一个新的 foo(而不是 1),它当然是 foo 类型。

另一方面,前者返回一个类型为 Function 的函数本身。

function foo() {
  return foo;
}

console.log( new foo() instanceof Function );
// true

function bar() {
   return 1;
}

console.log( new bar() );
// prints {} as new bar() returns an empty object of bar proto

关于Javascript instanceof 运算符函数返回自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50669040/

相关文章:

javascript - 在 TypeScript 中将任意函数参数推断为对象或元组类型

javascript - Javascript 中的正则表达式无需重复

javascript - 具有相同名称的变量和函数在 block 内返回错误

javascript - 在 jQuery 中切换 div 的高度

javascript - 通过javascript更改CSS类中的td

javascript - 扩展 Ext JS GridPanel 列宽

javascript - 如何设计 Gmail 发送按钮

javascript - nodejs - 从子模块调用父模块内的函数

javascript - 在 MongoDB 查询中使用 javascript 变量作为 $regex 的值

javascript - ReactJS 将对象数组添加到对象数组中并在对象数组中添加对象