美文网首页
TypeScript使用class继承时,实例创建时属性赋值的覆

TypeScript使用class继承时,实例创建时属性赋值的覆

作者: 杀鸡也得用牛刀 | 来源:发表于2018-11-16 18:54 被阅读0次

试验环境:webpack + ts + babel

在ts中,在使用new语法创建类实例时,有两种方式给实例属性赋值:

class Person {
    // 方式一:直接在属性声明时给个默认值
    firstName: string = 'tom'
    // 普通声明
    lastName: string

    constructor () {
        方式二:在构造器中赋值
        this.firstName = 'nick'
        this.lastName = 'yang'
    }
}

其中,当对同一个属性赋值时,方式二优先级高于方式一。

那么加上继承呢?比如:

class BaseModel {
    firstName: string = 'parent_nick'

   constructor () {
       this.lastName = 'parent_yang'
   }
}

class Person extends BaseModel {
    // 方式一:直接在属性声明时给个默认值
    firstName: string = 'tom'
    // 普通声明
    lastName: string

    constructor () {
        方式二:在构造器中赋值
        this.firstName = 'nick'
        this.lastName = 'yang'
    }
} 

在这种情况下,可以看出一个属性有四种赋值方式。此时的赋值优先级是:子类构造器 > 子类声明预设定(默认值) > 父类构造器 > 父类声明预设定
更长的继承链依次类推。

相关文章

  • TypeScript使用class继承时,实例创建时属性赋值的覆

    试验环境:webpack + ts + babel 在ts中,在使用new语法创建类实例时,有两种方式给实例属性赋...

  • typescript入门-类

    类定义 class 实例化 new 实例属性、方法 继承 extends 静态属性、方法 使用 static 前置...

  • Python-类和对象

    关键词:类、实例、继承、重载创建类: 创建类实例对象: 属性操作: 类的继承: 继承类定义时,括号内填写父类名称继...

  • JS继承

    原型链继承 这种继承方式中,引用类型的属性被所有实例共享e.g. 在创建 Child 的实例时,不能向Parent...

  • 前端面试题整理三

    1、继承的几种方式及优缺点? 原型链继承 缺点:1.引用类型的属性被所有实例共享2.在创建 Child 的实例时,...

  • copy,mutableCopy

    属性没有mutableCopy,创建NSMutableString对象时使用copy,赋值的时候还是copy所以创...

  • 深入之继承多种方式与优缺点

    1、原型链继承 问题: 1、引用类型的属性被所有实例共享:例如 2、在创建 Child 的实例时,不能向Paren...

  • MRC内存管理

    以MRC为实验 使用属性赋值 使用实例变量赋值 全局的属性在VC的dealloc中释放。

  • Python_slots_使用详解

    简述:当一个类需要创建大量实例时,通过_slots_可以声明实例所需要的属性 具体用法:如class std(ob...

  • metaclass的另类用法

    python 的metaclass 一般是创建或初始化class 时使用的,用来增减或调整class 的属性、方法...

网友评论

      本文标题:TypeScript使用class继承时,实例创建时属性赋值的覆

      本文链接:https://www.haomeiwen.com/subject/ghfvfqtx.html