二十六.构造函数和new关键字

123 阅读1分钟

构造函数

1)构造函数用于创建对象:任何对象都是函数创建出来的,任何对象都有构造函数。任何对象都有类型,其类型是创建对象的构造函数。

2)同一个函数创建出来的对象们具有相同的功能但同一个函数创建出来的每一个对象是互不相同的,即是不同的对象具有同样的功能。

3)构造函数分类:自定义函数;官方提供的全局函数:String、Number、Bloolean、Array、Date、Math

关键字new创建对象

对象创建表达式:new后面跟一个函数,整个表达式会得到一个对象。

new fn():

1.new创建一个空对象{ }并给它添加一个属性__proto__,这个属性引用fn.prototype

2.运行构造函数fn,让内部的this指向创建的空对象(即用创建的空对象去调用构造函数)

3.整个表达式的结果看函数fn的return返回值(无论有没有return,整个表达式的结果都会得到一个对象)

3.1 return返回值是引用数据,那么就是返回值,创建的对象会被销毁

image.png

image.png

3.2 没有return或return返回值不是引用数据,那么就是这个运行完毕之后的创建的那个对象

image.png

image.png

constructor属性

任何对象都有constructor属性,用于检测对象是用哪个构造函数创建出来的。