在所有ECMAScript语言中,构造函数与其他普通函数除了调用它们的方式不同,别的没有什么区别。
在我们调用构造函数时,会使用new操作符 + 构造函数,在这种方式调用构造函数时,会执行以下几个步骤:
- 创建一个新对象
- 将构造函数的作用域赋给这个新对象,这时this指针就指向了这个对象
- 执行构造函数中的代码
- 返回这个对象
但当我们直接调用构造函数,不使用new操作符时,就与调用普通构造函数没有什么区别了。如果构造函数中创建了属性,这个属性会挂载到调用者this所指向的对象上。