在默认状态下,JavaScript预定义了很多构造函数,如Function(),Array(),Date(),
String(),如果去掉小括号,它们就是JavaScript内置对象,在JavaScript中,构造函数实际上就是类的一种抽象结构。
js的对象构造器,实际上是一个函数,如果不用new,相当于直接调用函数,用new方式,会创建对象的一个新实例。
构造函数内如果有对this的引用,不会指向新实例本身(也不存在这个新实例),而是会指向调用构造函数时的上下文环境。
例如:
|
|
JavaScript构造函数可以返回一个对象,返回的对象将成为new运算符的运算值,此时this所引用的对象就会被覆盖。
但是如果返回值是原始值时,就不会覆盖实例化对象,此时,按普通函数的方式调用构造函数就可以得到返回值
例如:
|
|
因此,如果构造函数的返回值为对象,可以直接使用构造函数来引用该返回值对象。而不需要使用new运算符来运算。