• ES6 class 类


    在ES6中增加了类的概念,可以使用class关键字声明一个类,之后以这个类来实例化对象

    类抽象了对象的公共部分,它泛指某一大类(class) 对象特指某一个,通过类实例化一个具体的对象

    如 明星、歌手、电影演员、电视演员、都指一类、

    歌手实例化对象 =》王力宏 是一个具体的对象

    歌手这个类有实例化对象的公共部分:例如 出专辑 粉丝应援外号 特点  具体的一些动作......

    类里面constructor 构造函数 

    constructor() 方法是类的构造函数(默认方法),用于传递参数,返回实例对象通过 new 命令自动调用该方法,如果不手动写 类内部也会自动创建

    constructor 里的this 指向实例化的对象

    创建新的实例 new 关键字不能省略

    new 在执行时会做着四件事

    1.内存中创建一个新的对象

    2.让this指向这个新的对象

    3.执行构造函数代码 给对象数据

    4.返回这个对象 (所以不用return)

    1. 声明一个明星的类
    2. class Star {
    3. constructor(uname,num){
    4. this.uname = uname
    5. this.number = num
    6. }
    7. rap(sang){
    8. console.log(this.uname+'唱了'+sang)
    9. }
    10. }
    11. 实例化两个对象
    12. let wlh = new Star('王力宏','38')
    13. let lll = new Star('李靓蕾','32')
    14. 打印输出
    15. console.log(wlh,lll);
    16. console.log(wlh.uname,lll.number)
    17. wlh.rap('我们的歌')
    18. lll.rap('情人总分分合合可是我们')

    类里的this 指向

    constructor 里的this 指向实例化的对象

    方法里的this指向实例调用者 可以使用 bind 方法更改this 指向

    类继承extends+super关键字

    使用extends 关键字 继承父类

    在构造函数内使用super (必须放在第一行)来选择性接收参数

    如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的如果没有就去父类查找

    class 子类 extends 父类{

            constructor(x,y){

                    super(x,y)

                    this.x = x

                    this.y = y

            }

    }

     

    1. class Father{
    2. constructor(x,y) {
    3. this.x = x
    4. this.y = y
    5. }
    6. sum(){
    7. console.log(this.x + this.y);
    8. }
    9. cheng(){
    10. console.log(this.x * this.y)
    11. }
    12. money(){
    13. console.log('1100万')
    14. }
    15. say(){
    16. return '我是father'
    17. }
    18. }
    19. class Son extends Father{
    20. constructor(x,y) {
    21. super(x,y);
    22. this.x = x
    23. this.y = y
    24. }
    25. yu(){
    26. console.log(this.x % this.y)
    27. }
    28. }
    29. let son = new Son(1,2)
    30. let son2 = new Son(92,7)
    31. console.log(son)
    32. son.sum()
    33. son2.cheng()
    34. son.money()
    35. console.log(son.say());
    36. son2.yu()

    static关键字

    加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。 如果静态方法包含this关键字,这个this指的是类,而不是实例。注意与类中普通方法:类的方法内部如果含有this,它默认指向类的实例。 静态方法不能被实例调用,只能通过类来调用。

  • 相关阅读:
    java在线影院系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    ROSBridge - ROS系统与非ROS外部系统的通信的C++客户端实现
    JVM之运行时数据区 方法区
    c语言分层理解(c语言文件操作)
    解决Whitelabel Error Page最简单的方式
    选好“建材”,为一座座数据孤岛搭起通车桥梁
    DC-3靶场搭建及渗透实战详细过程(DC靶场系列)
    【C语言刷题】Leetcode268丢失的数字
    2022 需求工程综合论述题【太原理工大学】
    力扣5. 最长回文子串(双指针、动态规划)
  • 原文地址:https://blog.csdn.net/benlalagang/article/details/126358768