js构造函数详解

1.构造函数介绍

构造函数是专门用来生成对象的函数,它提供模板,描述对象的基本结构。一个构造函数,可以生成多个对象,这些对象都有相同的结构。构造函数的写法就是一个普通的函数,但是有自己的特征和用法。例如,我写日志,每天都需要添加自己的姓名和日期,我们可能会创建这样的对象,

let to1 = {
    name: 'Sunsin',
    desc: '今天注意啥1'
};
let to2 = {
    name: 'Sunsin',
    desc: '今天注意啥2'
};
let to3 = {
    name: 'Sunsin',
    desc: '今天注意啥3'
};

如此重复的写同样的结构,于是我们可以写一个构造函数用于生成这样的对象,如下:

// 1.2 写个构造函数进行添加
function Log(name, desc) {
    this.name = name;
    this.desc = desc;
}
let to4 = new Log('Sunsin', '今天注意啥4');
let to5 = new Log('Sunsin', '今天注意啥5');

同样的假如用普通函数有:

function Logs(name, desc) {
    return {
        name,
        desc
    };
}
let to6 = Logs('Sunsin','今天注意啥6');

2.构造函数的执行过程(或者说new的过程干了哪些事)

  1. 在内存中创建一个新的空对象。

  2. 让 this 指向这个新的对象。

  3. 执行构造函数里面的代码,给这个新对象添加属性和方法。

  4. 返回这个新对象(所以构造函数里面不需要return)。

 3.构造函数和普通函数的区别
 

构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写

构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象

调用方式不一样。

 

     a. 普通函数的调用方式:直接调用 person();

     b.构造函数的调用方式:需要使用new关键字来调用 new Person();

构造函数的函数名与类名相同:Person( ) 这个构造函数,Person 既是函数名,也是这个对象的类名

 

function Logs(name, desc) {
    return {
        name,
        desc
    };
}

 

let to6 = Logs('Sunsin','今天注意啥6');
posted @ 2023-02-09 19:25  122www  阅读(109)  评论(0编辑  收藏  举报