JS构造函数

46 阅读1分钟

前言
构造函数是我们学习javascript中很重要的一个知识点,他和原型原型链还有创建对象等息息相关,面试中也是经常被提问到的一个点,让我们来看看构造函数为何物吧!

什么是构造函数?
构造函数是用于创建特定类型对象的。

构造函数的特点
(1)构造函数名称的首字母要大写。
(2)构造函数用关键字 new 来调用。

通过构造函数创建一个对象

// 自定义一个构造函数Person
function Person(name, age, job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        console.log('my name is' + this.name)
    }
}
// 通过构造函数Person实例化一个对象person1
let person1 = new Person('张三', 18, 'teacher')

用构造函数 new 一个新对象会执行如下操作:
(1)在内存中创建一个新对象。
(2)这个新对象的[[Prototype]]特性被赋值为构造函数的prototype属性。
(3)构造函数内部的this指向新对象。
(4)执行构造函数内部的代码(给新对象添加属性)。
(5)return this 此时新对象有了构造函数的属性和方法。

那么构造函数和普通函数有什么区别呢?
(1)函数名不同
普通函数名以小写字母开头
构造函数名以大写字母开头

(2)调用方式不同
普通函数调用:函数名()
构造函数调用:使用 new 关键字来调用。