扫码关注官方订阅号
function foo(){ return foo; } console.log(new foo() instanceof foo);
不懂为什么返回false
人生最曼妙的风景,竟是内心的淡定与从容!
因为new 的规则是,如果函数返回对象则就是这个对象,否则是函数中的this所以 new foo() 其实就是 foo,所以foo instanceof foo 是false
new
this
new foo()
foo
foo instanceof foo
new foo() === foo 会是 true
new foo() === foo
换了两段不一样的代码,自己再感受一下:
function foo(){ return foo; } let f = new foo(); console.log(f instanceof foo);
function foo(){ return this; } let f = new foo(); console.log(f instanceof foo);
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
因为
new的规则是,如果函数返回对象则就是这个对象,否则是函数中的this所以
new foo()其实就是foo,所以foo instanceof foo是falsenew foo() === foo会是 true换了两段不一样的代码,自己再感受一下: