使用或不使用 new 关键字调用 javascript 函数有区别吗?例如,如果我有这个功能:
function computer(){
this.hardDrive = "big";
this.processor = "fast";
}
然后我以两种不同的方式调用它:
var hp = computer();
var hp = new computer();
两个函数调用之间有什么区别?
使用或不使用 new 关键字调用 javascript 函数有区别吗?例如,如果我有这个功能:
function computer(){
this.hardDrive = "big";
this.processor = "fast";
}
然后我以两种不同的方式调用它:
var hp = computer();
var hp = new computer();
两个函数调用之间有什么区别?
没有new
,this
指的是全局对象,而不是函数返回的任何对象。
如果你要执行你的代码,你会发现第一个hp
是undefined
,而第二个是[object Object]
。此外,由于显而易见的原因,第一个不具有hardDrive
or的属性processor
,但第二个具有。
在第一个示例中,您的两个属性将被添加到window
对象中。
第一个,不是 using new
,将在this
引用 window 对象的情况下运行。第二个, using new
,将创建一个新的空对象,该对象将是this
函数内。