HarmonyOS class类对象基础使用

按我们之前的写法

就是

typescript 复制代码
@Entry
@Component
struct Dom {
  p:Object = {
    name: "小猫猫",
    age: 21,
    gf: {
      name: "小小猫猫",
      age: 18,
    }
  }
  build() {
    Row() {
      Column() {
        // @ts-ignore
        Text(this.p.gf.name)
      }
      .width('100%')
    }
    .height('100%')
  }
}

直接用 Object 一层一层往里套

这个结构 其实并不是那么友好 而且编辑器没有那么认可 需要用 // @ts-ignore标识才能通过语法检查

不过 运行到没什么问题

我们可以直接将代码结构改成这样

typescript 复制代码
class Person{
  name: string
  age: number
  gf: Person
  constructor(name: string, age: number,gf?: Person) {
    this.name = name;
    this.age = age;
    this.gf = gf;
  }
}
@Entry
@Component
struct Dom {
  p: Person =new Person(
    '小猫猫',
    21,
    new Person('小小猫猫', 18)
  )
  build() {
    Row() {
      Column() {
        Text(this.p.gf.name)
      }
      .width('100%')
    }
    .height('100%')
  }
}

这是 我们声明的对象结构体 一个class 类型 其中包含3个属性

string字符串类型的 name

number数字类型的 age

gf比较特殊 它是 Person类型 就是我们声明的这个类的类型的 简单说 就是 Person的gf可以再套一个Person对象

然后构造函数

然后 constructor 构造函数 相当于创建对象时 就会触发

然后 它接收 三个参数 分别就是我们的三个属性 然后 给自己的赋值

然后 我们定义一个 Person 类型的 属性 叫 p

第一个参数 name 赋值为 小猫猫

第二个参数 age 赋值为 21

然后 第三个参数 gf 类型是 Person 于是 我们new一个Person对象

这个我们只给了两个参数 name 小小猫猫 age 18

这也间接告诉大家 如果类对象的字段 你不想赋值 直接不传就好了

运行结果如下

相关推荐
2501_920931705 小时前
React Native鸿蒙跨平台采用ScrollView的horizontal属性实现横向滚动实现特色游戏轮播和分类导航
javascript·react native·react.js·游戏·ecmascript·harmonyos
摘星编程7 小时前
React Native鸿蒙版:Drawer抽屉导航实现
react native·react.js·harmonyos
向哆哆7 小时前
打造高校四六级报名管理系统:基于 Flutter × OpenHarmony 的跨端开发实践
flutter·开源·鸿蒙·openharmony·开源鸿蒙
lbb 小魔仙8 小时前
【Harmonyos】开源鸿蒙跨平台训练营DAY9:获取分类数据并渲染
flutter·华为·harmonyos
mocoding8 小时前
Flutter 3D 翻转动画flip_card三方库在鸿蒙版天气预报卡片中的实战教程
flutter·3d·harmonyos
2501_920931708 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
C雨后彩虹9 小时前
计算疫情扩散时间
java·数据结构·算法·华为·面试
24zhgjx-lxq10 小时前
华为ensp:MSTP
网络·安全·华为·hcip·ensp
qq_1777673710 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos
烬头882110 小时前
React Native鸿蒙跨平台应用实现了onCategoryPress等核心函数,用于处理用户交互和状态更新,通过计算已支出和剩余预算
前端·javascript·react native·react.js·ecmascript·交互·harmonyos