使用new关键字调用javascript函数和不使用new关键字调用javascript函数有区别吗?例如,如果我有这样的函数:
function computer(){
this.hardDrive = "big";
this.processor = "fast";
}然后我用两种不同的方式调用它:
var hp = computer();
var hp = new computer();这两个函数调用之间的区别是什么?
发布于 2012-04-26 09:19:48
如果没有new,this将引用全局对象,而不是从函数返回的任何对象。
如果要执行代码,您会发现第一个hp是undefined,而第二个是[object Object]。此外,由于显而易见的原因,第一个没有hardDrive或processor属性,但第二个有。
在第一个示例中,您的两个属性将被添加到window对象中。
发布于 2012-04-26 09:20:55
第一个不使用new,运行时将使用this引用窗口对象。第二个使用new,将创建一个新的空对象,该对象将是函数中的this。
https://stackoverflow.com/questions/10326009
复制相似问题