一、类与对象

什么是类?

好比:人类、动物类

就是一个群体的统称

类里描述这一类群体,有哪些特征和行为,所谓的特征对应到代码中就是属性,行为对应到代码中就是方法

类理解为是一套描述数据的模板,但是没有具体的数据

在ES6以前JS里是没有类专门的语法,都是通过 构造函数 起到类的作用

什么是对象?

某一个群体里的实际例子

对象可以理解为是根据模板创造出来的具体的数据

所以我们经常把 创建对象 叫做 实例化对象

ES6里声明一个类的语法

class 类名 {constructor() {// 给它描述有哪些属性}// 方法列表
}

例:

        class Person {constructor(name, age) {// 给它描述有哪些属性:姓名、年龄this.name = name,this.age = age}// 方法列表,在这里写方法不用加function// 语法:方法名 () { 方法体 }eat() {console.log('吃啊吃')}sleep () {console.log('睡啊睡')}}// 通过类来创建对象(实例化对象)let p1 = new Person('jack', 16)console.log(p1)p1.eat() p1.sleep()

二、静态成员

静态成员

在ES6以前,由构造函数直接调用的属性和方法叫静态成员

在ES6以后,由类直接调用的属性和方法叫静态成员

在类里面对变量、函数加 static 关键字,那它就是静态成员

class Person {// 加一个static关键字,那这就是静态成员static name = "Person"static version = "v0.0.1"static test () {console.log('我是静态方法test')}}console.log( Person.name )console.log( Person.version )Person.test()let p1 = new Person() console.log(p1.name) // undefinedconsole.log(p1.version) // undefined 因为没有加实例成员

静态成员不会被实例化成为新对象的元素

三、类的继承

面向对象三大特征:

封装、继承、多态(前端用不上)

继承语法:

class 类名 extends 父类名 {constructor() {// 必须先调用super()// 给自己独有属性赋值}// 方法列表
}

       // 人类// 如果没有写extends,那默认继承自Object// 相当于写了一个 extends Objectclass Person {constructor(name, age) {this.name = namethis.age = age}eat() {console.log('吃啊吃')}}// 声明一个中国人类,并继承自人类class Chinese extends Person {constructor(name, age, hukou) {// 是专门用来继承父类的属性的// 必须先调用super然后才能给自己的属性赋值super(name, age)//super将参数给到被继承的Personthis.hukou = hukou}spring() {console.log('过春节放鞭炮')}}let lilei = new Chinese('李雷', 16, '北京')console.log(lilei)lilei.spring() lilei.eat()
  • 注意:如果没有写 extends 那么默认继承自 Object
  • 细节:如果子类里没有写 constructor 那么默认调用父类的 constructor

四、类的本质与继承的本质

  • 类的本质就是构造函数,所以类里的方法也都是放到构造函数.prototype里面的
  • 这种语法我们称之为 语法糖
  • 继承的本质:

    • 还是通过原型链继承到方法
    • 还是通过调用父类的构造函数并修改它里面的this指向来达到属性继承

JS高级之ES6类与对象、静态成员、类的继承相关推荐

  1. JavaScript从入门到放弃 - ES6中的对象和类

    重点讲解Tab栏切换.增.删.改 1. 面向过程与面向对象 2.ES6 中的对象与类 2.1 对象 2.2 类 2.2.1 创建类 2.2.1.1 语法 2.2.1.2 实例 2.2.2 类创建添加属 ...

  2. C++ 类与对象_类的其他成员(常成员,静态成员,友元)

    系列文章目录 重新复习c++,所以把书中的重点内容整理成博客,尽量简洁,易懂. C++ 类与对象_类和对象的定义与访问 (定义类和对象,访问对象成员,this指针) C++ 类与对象_构造函数和析构函 ...

  3. python中组合与继承的区别_python类与对象的组合与继承

    1.把类的对象实例化放到一个新的类里面叫做类的组合,组合就是指几个横向关系的类放在一起,纵向关系的类放在一起是继承,根据实际应用场景确定.简单的说,组合用于"有一个"的场景中,继承 ...

  4. java类与对象_Java类与对象

    类与对象 1,面向对象编程简介 Java语言最大的特点在于面向对象的编程设计,并且面向对象的编程设计也在由于Java自身的发展而不断发展.面向过程编程(C语言).函数式编程(Scala).面向对象编程 ...

  5. php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

    php函数.类和对象以及类的封装.继承.类的静态方法.静态属性 原文:php函数.类和对象以及类的封装.继承.类的静态方法.静态属性 1.函数 php内置函数可以直接使用,如果没有安装php扩展即可 ...

  6. 实验四 类和对象;类的继承和派生;多态性; 接口;构造器应用

    实验四 类和对象:类的继承和派生:多态性: 接口:构造器应用 一.实验目的 1. 掌握类与对象的关系: 2. 掌握类的定义: 3. 掌握对象的声明及使用: 4. 掌握构造方法的概念及调用时机: 5. ...

  7. JAVA基础--java简单知识04(类与对象,封装,继承,多态)

    类与对象 在学习Java中,最重要的就是面对对象,面对对象三大特性:封装,继承,多态 什么是面对对象? 面对对象,就是你在进行开发时,把所有能够认知到的事物看做对象,去描述它的行为和特征. 什么是类和 ...

  8. c++类和对象(类的概念)

    1.类和对象概念 类:用来对实体(对象)进行描述,对象有什么属性,以及对象具有什么功能是一种自定义类型 对象:现实生活中所存在的 ,对象是对类的具体体现 用类类型创建出来的变量称为对象 2.类的定义 ...

  9. mysql构造器_类和对象,类的构造器,魔术方法__get()和__set(),mysql连接数据库的方式--2018年8月30日11时38分...

    这一节课主要讲的是类和数据库的知识,主要是类和对象,类的构造器,魔术方法__get()和__set(),mysql连接数据库1. 什么是类 ?什么是对象?举例说明 答:类是对象的模板,对象是类的一个实 ...

  10. 类、对象、封装、继承和多态等,一目了然!

    当谈到面向对象编程的概念和原则时,以下是一些示例来说明类.对象.封装.继承和多态的概念: 类(Class): 类是一种定义对象属性和行为的蓝图.它描述了对象的状态和行为.例如,我们可以创建一个名为&q ...

最新文章

  1. android 把assets 里面的图片文件输出到SD卡
  2. 安装spark1.3.1单机环境
  3. SAP Fiori My task里complete checkbox的处理
  4. jzoj4802-[GDOI2017模拟9.24]探险计划【费用流,拆点】
  5. 解决idea启动项目报错:Unable to open debugger port(127.0.0.1:60157):java.net.SocketExceptionsocket closed
  6. data为long 怎么设置vue_vue基础之data
  7. ADB投屏_最强开源投屏神器,跨平台电脑控制+文件传输——scrcpy
  8. codeforces-1201 C Maximum Median
  9. 【Elasticsearch】实用BM25 -第1部分: shard 如何影响Elasticsearch中的相关性评分
  10. 常用工具使用(sublimeText)
  11. c语言代码re通常什么错误,求帮助 C语言realloc和free触发断点的问题
  12. 以用户为师,报喜鸟用需求助力云备份产品创新
  13. 协作多智能体强化学习中的回报函数设计
  14. Wireless工具配置
  15. 北京致芯科技STM32F107VC 芯片解密 代烧录
  16. 这一年,我所阐释的Linux哲学
  17. 解决fbreader从书架打开的是同一本书问题
  18. c语言中感叹号什么意思_感叹号的意思
  19. Win10设置每天定时运行某程序(关注不迷路,加星不糊涂哦~)
  20. Java将域名转换成IP

热门文章

  1. 小红书内容营销的必读推荐 小红书运营策划方案上海氖天
  2. 三百内哪款蓝牙耳机较好?好用的高性价比蓝牙耳机推荐
  3. dubbo版的明朝那些事儿
  4. Blockly源码解析
  5. STM32学习——UART串口通信学习
  6. 半入耳式蓝牙耳机评测:南卡蓝牙耳机和FIIL哪个更好?
  7. 配置jdk,jre环境变量
  8. 【OpenCV4】C++ 创建二维汉宁窗 Hann Window / Hanning Window
  9. DB2执行计划 db2 explan
  10. linux中流设备_LINUX块设备驱动1