JS中类、对象、构造函数

什么是类,什么是对象?
1、类是抽象了对象的公共部分,类里面包括的是一些公有的特点,
2、对象特指某一个,通过类实例化一个具体的对象, 是一个具体的物体 。

对象的特点:
1、对象是一组无序的集合
例如字符串、数值、数组、函数
2、有属性也有方法,
属性可以理解为这个对象本身所带的一些特征,静态的
方法可以理解为这个对象可以做什么,动态的
3、必须通过new来调用

构造函数
在ES6之前没有出现类的概念,那么怎么将对象的公共部分抽象出来呢,所以就利用构造函数来实现。
也就是说:构造函数就是将对象里面一些相同的属性和方法抽象出来封装到函数里面

构造函数的特点:
1、构造函数的第一个字母大写
2、必须通过new调用
3、如果return的是一个基本类型,则不影响创建对象,
最后返回的是这个基本类型
但若是return的是一个引用类型,就会影响创建对象 ,
最后返回的是这个引用类型

new的过程
1、调用构造函数必须使用new关键字,调用一个构造函数就创建一个对象
2、this会指向空对象(this就代表这个构造函数) ,即this{}
3、执行构造函数里面的代码,给这个空对象添加属性与方法
4、返回对象

举例说明
比如说 人有什么公共特点呢?
1、人有姓名、年龄,性别、体重这些特征,这些叫属性;
2、同时人也会吃饭、会跑步、会学习, 这些叫方法。
3、那么对于人这些公共的属性与方法我们要怎么将它们合并到一块呢,这时候我们就会想到用类封装, 但是ES6之前没有类的概述,那我们要怎么做?这时就可以利用构造函数将它们封装起来,
4、从人这个抽象的概念中提取出来一个具体的人——张三,张三这个具体的人就是实例化对象, 也就是 new Person(‘张三’, 20, ‘男’ ); 又因为我们会多次使用对象,所以我们将这个实例赋值给一个变量 person,
这也就是var person = new new Person(‘张三’, 20, ‘男’ ) 的意思

function Person(name, age, sex){
	this.name = name;
	this.age = age;
	this.sex = sex;
	this.study = function(){
		console.log(1)
	};
}

var  person = new  new Person('张三', 20, '男' )

发布了12 篇原创文章 · 获赞 27 · 访问量 783

猜你喜欢

转载自blog.csdn.net/qq_36091461/article/details/105406522