zoukankan      html  css  js  c++  java
  • es6-13 类与对象

    基本语法

    {
        // 基本定义和生成实例
        class Parent {
            // 定义构造函数
            constructor (name = 'LiMing') {
                this.name = name
            }
        }
    
        // 生成实例
        let parent = new Parent('Helzeo')
        console.log(parent) // {name: "Helzeo"}
    }

    类的继承

    {
        // 基本定义和生成实例
        class Parent {
            // 定义构造函数
            constructor (name = 'LiMing') {
                this.name = name
            }
        }
    
        // 生成实例
        let parent = new Parent('Helzeo')
        console.log(parent) // {name: "Helzeo"}
    
        // 类的继承
        class Child extends Parent {
            constructor (name = 'child name') {
                super(name) // 子类覆盖父类 super 必须要放在第一行
                // 子类定义自身属性和方法一定要在 super 之后
                this.type = 'child'
            }
        }
        let child = new Child('chile param')
        console.log(child)
    }

    getter 和 setter

    {
        // getter 和 setter
        class Parent {
            // 定义构造函数
            constructor (name = 'LiMing') {
                this.name = name
            }
    
            get longName() { // 注意这里是属性, 不是方法
                return this.name + 'Lee'
            }
    
            set longName(value) { // 注意这里是属性, 不是方法
                this.name = value
            }
        }
    
        let parent = new Parent()
        console.log('getter', parent.longName) // LiMingLee
        parent.longName = 'Helzeo'
        console.log('setter', parent.longName) // HelzeoLee
    }

    静态方法 static

    {
        // 静态方法 关键字 static
        class Parent {
            // 定义构造函数
            constructor (name = 'LiMing') {
                this.name = name
            }
    
            // 静态方法, 通过类来调用, 而不是实例来调用
            static tell() {
                console.log('tell')
            }
        }
        Parent.tell()
    }

    静态属性

    {
        // 静态方法 关键字 static
        class Parent {
            // 定义构造函数
            constructor (name = 'LiMing') {
                this.name = name
            }
        }
        // 定义静态属性没有关键字, 直接在类上赋值即可
         Parent.type = 'test'
         console.log('静态属性', Parent.type)
    }
  • 相关阅读:
    泛型的二阶构造
    二叉树的优势
    浅谈AVL树,红黑树,B树,B+树原理及应用
    AVL树,红黑树,B树,B+树,Trie树都分别应用在哪些现实场景中?
    据库索引及其数据结构
    关系型数据库工作原理-数据结构(3)
    数据库的最简单实现
    为什么使用数据库?数据库的存取效率如何保证?
    iOS原生数据存储策略
    数据存储要解决的几个问题
  • 原文地址:https://www.cnblogs.com/helzeo/p/11822776.html
Copyright © 2011-2022 走看看