1、构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写
2、构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)
3、调用方式不一样。
a. 普通函数的调用方式:直接调用 person();
b.构造函数的调用方式:需要使用new关键字来调用 new Person();
4、构造函数的函数名与类名相同:Person( ) 这个构造函数,Person 既是函数名,也是这个对象的类名
5、内部用this 来构造属性和方法
function Person(name,job,age){ this.name=name; this.job=job; this.age=age; this.sayHi=function(){ alert("Hi") } }
5、构造函数的执行流程
A、立刻在堆内存中创建一个新的对象
B、将新建的对象设置为函数中的this
C、逐个执行函数中的代码
D、将新建的对象作为返回值
6、普通函数例子:因为没有返回值,所以为undefined
![6035d319f14504bbf3654ad86fd8c776.png](https://i-blog.csdnimg.cn/blog_migrate/557781b6e404b332de09810262eba784.jpeg)
![cdda1fa9e52d8823390c781eec0584df.png](https://i-blog.csdnimg.cn/blog_migrate/af41a3539015e8d94ab2096439d78767.jpeg)
7、构造函数例子:构造函数会马上创建一个新对象,并将该新对象作为返回值返回
![6793e1fa2b49387e4556404f128702c5.png](https://i-blog.csdnimg.cn/blog_migrate/612df3fa5c35845c5b012c0723bb4c9d.jpeg)
![eeaefefd7a771e42c3de277fc1b7a03f.png](https://i-blog.csdnimg.cn/blog_migrate/210e047b058dbbf39f0ad0e76de8fec0.jpeg)
8、用instanceof 可以检查一个对象是否是一个类的实例,是则返回true;
所有对象都是Object对象的后代,所以任何对象和Object做instanceof都会返回true
![1a9bbe913bb03e9239193ed12cd16afc.png](https://i-blog.csdnimg.cn/blog_migrate/3b8a9512cef784f013195ce1c3ba9614.jpeg)
![e009896fc70cda8bb626beed9fa244e5.png](https://i-blog.csdnimg.cn/blog_migrate/93af9e0f0570f759d9a223032fa1be5e.jpeg)