new 运算符,用来创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。也就是说,是根据一个对象,去创建它的实例。
语法
1 | new Constructor[([arguments])] |
参数
Constructor
一个指定对象实例的类型的类或函数。
arguments
一个用来被 Constructor 调用的参数列表。
过程
- 新生成了一个对象
- 链接到原型
- 绑定 this
- 返回新对象
在调用 new
的过程中会发生以上四件事情,我们也可以试着来自己实现一个 new
。
1 | function Car (make, model, year) { |
1 | function Car (make, model, year) { |
1 | function Car (make, model, year) { |
现在,我们在 Car
中返回 {}
或者 null
:
1 | function Car (make, model, year) { |
确保 new 出来的是个对象
也就是说,在 new
的构造函数的返回值是对象时就返回该返回值,不是对象则返回创建的对象