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的过程干了哪些事)
-
在内存中创建一个新的空对象。
-
让 this 指向这个新的对象。
-
执行构造函数里面的代码,给这个新对象添加属性和方法。
-
返回这个新对象(所以构造函数里面不需要return)。
3.构造函数和普通函数的区别
构造函数也是一个普通函数,创建方式和普通函数一样,但构造函数习惯上首字母大写
构造函数和普通函数的区别在于:调用方式不一样。作用也不一样(构造函数用来新建实例对象)
调用方式不一样。
a. 普通函数的调用方式:直接调用 person();
b.构造函数的调用方式:需要使用new关键字来调用 new Person();
构造函数的函数名与类名相同:Person( ) 这个构造函数,Person 既是函数名,也是这个对象的类名
function
Logs(name, desc) {
return
{
name,
desc
};
}
let
to6 = Logs(
'Sunsin'
,
'今天注意啥6'
);
本文来自博客园,作者:122www,转载请注明原文链接:https://www.cnblogs.com/131362wsc/p/17106792.html