使用new关键字创建的对象都为构造函数
任何对象都有构造函数
<!--
function fn(){};
var obj = new fn();
// new 关键字后面跟函数 是一个表达式创建对象的运算 整个表达式一定会得到一个对象
//1.创建一个空对象
// 2.创建构造函数,让内部的this指向创建的对象(用创建的空对象去调用构造函数)
// 3.整个表达式的结果看函数的返回值
//3.1返回的值不是引用数据,则返回对象
//3.2返回的值是引用数据,则返回这个引用数据
// new fn==>创建对象,然后调用函数,不传参==>new无参
// new fn()==>创建对象,然后调用函数,并传参==>new带参
-->
用new 创建的都是在构造函数返回的值一定是一个引用数据(对象)
例如分别new Obejct、Array、Function
打印得到的都是对象
上面的new过程中返回值都是undefined,因此返回的是这个新的对象。
下面返回值是引用数据则返回的是这个引用数据。