我正在阅读Kyle Simpson的“ You-Dont-Know-JS”系列,遇到了以下代码块:

function NothingSpecial() {
    console.log( "Don't mind me!" );
}

var a = new NothingSpecial();
// "Don't mind me!"

a; // {}


据此,最后一行a;应该返回一个空对象{}。但正如我所见,它返回一个名称为NothingSpecial(NothingSpecial {})的对象。这种行为使我有些困惑。据我所知,new NothingSpecial()创建的对象是a,应将其命名为a而不是NothingSpecial。另外,名称NothingSpecial与函数名称冲突。有人可以解释吗?

最佳答案

它确实返回一个空对象。该对象恰好是NothingSpecial的一个实例,并且您用来检查它的工具向您显示了该信息(并不是说该对象存储在具有该名称的变量中,因此没有冲突)。

10-06 06:16