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
浙公网安备 33010602011771号