​new​​关键字与构造函数一起使用以创建对象:

function Employee(name, position, yearHired) {
= name;
this.position = position;
this.yearHired = yearHired;
};

const emp = new Employee("Marko Polo", "Software Developer", 2017);

​new​​​关键字做了​​4​​件事:

  • 创建空对象 ​​{}​

  • 将空对象分配给 ​​this​​ 值

  • 将空对象的​​__proto__​​​指向构造函数的​​prototype​

  • 如果没有使用显式​​return​​​语句,则返回​​this​

看下面事例:

function Person() { 
= '前端小智'
}

根据上面描述的,​​new Person()​​做了:

  • 创建一个空对象:​​var obj = {}​

  • 将空对象分配给 ​​this​​ 值:this = obj

  • 将空对象的​​__proto__​​​指向构造函数的​​prototype​​​:​​this.__proto__ = Person().prototype​

  • 返回​​this​​​:​​return this​