对象
对象 是一个具体的事物。 例如 明星不是对象,但是迪丽热巴是对象。 对象一定是具体的。
在JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组,函数等。
对象是由属性和方法组成的:
属性:事物的特征,在对象中用属性来表示(常用名词表示,如 name , age等)
方法:事物的行为,在对象中用方法来表示(常用动词表示,如sayHi, sing等)
类 class
在ES6中新增加了类的概念,可以用class关键字声明一个类,之后以这个类来实例化对象。
类 抽象化了对象的公共部分,它泛指某一个大类(class),例如明星都会演电影,都会唱歌等。
而对象 是类特指的一个事物,通过类实例化一个具体的对象。比如 明星是类,名字叫迪丽热巴的明星就是一个对象了。
面向对象的思维特点:
抽取(抽象)对象共用的属性和行为,组织(封装)成一个类(模板)。
对类进行实例化,获取这个类的某个对象。
比如,抽取会唱歌 会演电影的一类人 封装成一个明星类。 从明星类里面找出一个名字是迪丽热巴的妹子(实例化),获取到的迪丽热巴 就是这个明星类中的一个对象了。
创建类
通过class关键字创建类,类名首字母大写
类里面有个constructor函数,可以接受传递过来的参数,同时返回实例对象
关于constructor函数 其实就是构造器的意思 只要new生成实例对象 就会自动调用constructor函数,如果不写这个函数, 类也会自动生成这个函数。
用来实例化的new 不能省略
类名后面不要加小括号, 用new实例化的时候,类名后面是加小括号的。 构造函数不需要加function 。
类添加方法注意:
在ES6中 类没有变量提升,所以必须先定义类,才能通过类实例化对象。
类里面的共有属性和方法一定要加this使用
类里面的this的指向问题
constructor里面的this指向实例对象,方法里面的this指向这个方法的调用者。
原文链接https://blog.csdn.net/tuzi007a/article/details/106168063