在Javascript中,调用new foo()
和foo()
之间有什么区别吗?
在其他语言中,new关键字是必需的,但在Javascript中,由于Objects是通过函数作为构造函数创建的,因此new
关键字既不是必需的,也不应该是有益的。
例如:
function foo(){
return { a:2, b:3, hello: 'world' }
}
如果我致电new foo()
,则会返回与foo()
相同的结果。
我知道最新的ECMAscript规范有可能需要new关键字的类,但我真的只关心函数对象构造函数。