根据一些奇怪的Javascript规则,new Widget实际上调用构造函数而不是返回对构造函数的引用。这个问题实际上回答了var a = new Widget()和之间的区别var a = Widget()。简单来说,new关键字告诉Javascript Widget在一组不同于常规函数调用的规则下调用函数。脱离我的头脑,我记得的是:创建了一个全新的对象Widget可以使用this关键字来引用该对象。如果Widget不返回任何内容,则将创建此新对象。此对象将继承一些其他属性,这些属性将指示它是Widget用于跟踪属性链的。如果没有new关键字,则会调用窗口小部件如果在严格模式下,this将设置为undefined.否则,this将引用全局对象。(window由浏览器调用。)如果函数没有返回任何内容,则undefined返回。参考: new关键字