zoukankan      html  css  js  c++  java
  • class关键字

    class关键字

    作用:class关键字是原型对象的一个语法糖,让原型对象更加清晰

    class类的特点

    • 定义的class类,它的数据类型是函数,类名是指向其构造函数的索引,即生成的实例是构造函数的实例
    • new class名()创建一个实例对象,该实例对象是由构造函数初始化的,所以他的属性是构造函数包含的属性,构造函数外面的就是继承属性了
    • class类体里边有一个构造函数,即constructor(){}函数,如果没有定义会自动生成一个空的constructor函数
    • class里面的函数不需要关键系function定义,直接函数名就可以
    • __prpto__指向构造方法的原型对象
    • hasOwnProperty判断一个对象中是否含有属性和方法,返回布尔类型

    静态方法

    • 在函数前添加static关键字,声明改为静态方法,静态方法不用实例化就可以通过类名直接调用,非静态方法必须通过实例化之后才可以调用
    • 静态方法是不可以被实例对象继承的,所以类创建的对象不可以调用静态方法或静态属性,会报错
    • 静态方法可以直接被类调用,即类名.静态方法的方式
    • 静态方法中的this值指向类而非实例
    • 静态方法和非静态方法可以重名显示

    静态属性(ES6暂不支持,ES7有提案,需babel转换)

    • 在属性前面添加static关键字是不可以将属性变为静态属性的,所谓的静态属性指的是,该属性是类的属性而不是实例化的属性,即不需要实例化就可以方法的属性
    class Person {
        static type = '人类'
        constructor(name,age){
            this.name = name
            this.age = age
        }
        getName(){
            return this.name
        }
        getAge(){
            return this.age
        }
    }
    

    类的继承

    • class继承就用extends
    class students extends Person{
        super('老刘',20) //Parent.constructor.call(this,'老刘',20);
    }
    

    TS中class用法

    class Person {
      name: string
      static sex: string = '男'
      public gy = '公有的'  //默认是公有的,可以被任何地方访问
      private sy = '私有的' //只能在当前类内部访问
      protected bh: string = '保护的'   //只能在当前类内部和子类内部访问
    
      constructor(n: string) {
        this.name = n
        console.log('保护1', this.bh)
      }
      static setSex(): string {     //static属性要和static方法配合使用
        return this.sex
      }
      syFun(val: string) {
        this.sy = val
        return this.sy
      }
    }
    
    class person extends Person {
      constructor(n: string) {
        super(n)
        console.log(this.gy)
        console.log('保护2', this.bh)
      }
    }
    
    const p1 = new Person('欧文')
    const p2 = new person('詹姆斯')
    
  • 相关阅读:
    C/C++ 构造函数不能是虚函数
    C/C++ STL迭代器失效
    Linux fork函数
    算法和数据结构 限流算法
    数据库 redis底层实现
    C/C++ 虚析构函数
    万物皆可 Serverless 之使用云函数 SCF 快速部署验证码识别接口
    万物皆可 Serverless 之使用云函数 SCF+COS 免费运营微信公众号
    腾讯云云函数 SCF 日志检索最佳实践
    江娱互动「世界争霸」产品迁移至腾讯云云函数的实践
  • 原文地址:https://www.cnblogs.com/nanhuaqiushui/p/14406250.html
Copyright © 2011-2022 走看看