给出以下代码:
function foo(){ return foo; } var bar = new foo(); console.log(bar instanceof foo);
我希望输出为“ true”。但是,它是“ false”。
为什么bar对象不是foo类型?
另一方面,如果我只是从foo返回一个数字(例如2),则输出为true。
当从构造函数返回原语(例如2)时,返回值将被忽略。而是返回new创建的对象,就像构造函数没有return语句时一样。如果从构造函数返回对象,则无论该对象是否具有构造函数作为其内部原型,都将返回该对象(注意:函数是Javascript中的对象)。
在您的情况下,您将返回一个函数;该函数是foo,但不是foo的实例。
查看新操作员
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
点击生成二维码
我来说两句