<分区>
我正试图找到一个很好的解释为什么 new foo() instanceof foo 返回 false。
function foo() {
return foo;
}
new foo() instanceof foo;
如果函数 foo 被定义为,它会按预期返回 true
function foo(){
return 1;
}
标签 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 - nodejs - 从子模块调用父模块内的函数