ArkTS中的对象属性

ArkTS中的对象属性

目录

Ark中的对象属性

对象的定义:

对象的作用:

创建方法:

示例:

定义具体的对象

调用方法:

示例:

 小结


 

对象的定义:

对象属性是对象中存储数据的键值对元素,其中“键”是属性的名称,“值”是与键相关联的数据。

对象是一个可以存储多个数据的容器

对象的作用:

  • 数据封装: 对象可以将相关的数据和方法封装在一起,形成一个模块化的实体。
  • 数据管理: 提供一种方式来组织和存储复杂的数据结构。
  • 代码复用: 通过对象,可以创建可复用的代码组件,如类和模块。

对象可以将数据(属性)和行为(方法)封装在一起,使得代码更加模块化和易于管理。

创建方法:

  • 1.使用 interface 约束方法类型

    • interface 接口名 { 参数:类型,参数:类型,参数:类型,,, }

  • 2.使用 let 添加

    • let 对象名:接口名 = { 参数:实参,参数:实参,参数:实参,,,}

注意:

  • 对象里面使用都是键值对     // 键值对:属性名: 属性值

  • 可以用 let 创建多个对象

示例:

// 对象的基本定义
interface Car{
  brand:string;
  price:number;
  num:number;
}
let XiaoMiCar:Car={
  brand: "小米su7",
  price: 999,
  num: 100000
}
console.log("小米的车:",XiaoMiCar.brand) //获取某一个属性值

定义具体的对象

// 需求1:定义跳舞这个行为
interface iPerson {
  name: string
  // 定义了一个方法,没有参数,没有返回值的函数类型
  dance: () => void
  // 定义了唱歌的行为,歌名由外部传入,没有返回值

  sing: (songName: string) => void
}

注意:不传参 和 传参 的写法 

调用方法:

  • 对象名 . 方法名 ( )
  • 获取某一个值  console.log ( 对象名 . 方法名 )
  • 获取整个对象

    • console.log ( JSON.stringify ( XiaoMiCar ) ); //默认一行显示

    • console.log ( JSON.stringify ( XiaoMiCar, null, 2 ) ); //加缩进分行显示

示例:

let person = {
    name: "张三",
    greet: function() {
        console.log("Hello, my name is " + this.name);
    }
};

person.greet(); // 输出: Hello, my name is 张三

 小结

对象属性的主要作用包括数据封装、数据管理和代码复用。

在创建对象时,可以通过接口定义对象的结构,确保对象的属性和方法符合预期的类型和结构。

对象的方法可以通过接口定义,也可以直接在对象字面量或类中实现。

总的来说,ArkTS中的对象属性是实现数据封装、组织复杂数据和代码复用的关键,它们为开发者提供了一种灵活且强大的方式来处理数据和行为。


你的点赞就是我持续更新最大的动力!

#HarmonyOS #鸿蒙开发

 

### ArkTS 中的对象或变量属性展开方法 在 ArkTS 中,由于其设计特点并不支持传统的 JavaScript/TypeScript 风格的解构赋值语法[^1]。然而,可以通过其他方式实现类似的对象或变量属性提取功能。 #### 使用传统的方式获取对象属性 如果需要从一个对象中提取多个属性并分配给单独的变量,则可以手动完成这一过程: ```typescript let obj = { name: "Alice", age: 25, city: "Beijing" }; // 手动提取属性 let name = obj.name; let age = obj.age; console.log(name); // Alice console.log(age); // 25 ``` 这种方式虽然不如解构赋值简洁,但在 ArkTS 的约束下是一种可行的选择。 #### 动态扩展对象属性 尽管无法通过解构来简化操作,但仍然能够利用动态特性处理复杂的场景。例如,在某些情况下可能需要复制部分属性到新对象或者修改现有对象的内容: ```typescript function extendObject(target, source) { for (const key in source) { if (source.hasOwnProperty(key)) { target[key] = source[key]; } } } let originalObj = { a: 1, b: 2 }; let extendedObj = {}; extendObject(extendedObj, originalObj); console.log(extendedObj.a); // 输出 1 console.log(extendedObj.b); // 输出 2 ``` 此函数 `extendObject` 能够帮助将源对象的部分或全部属性转移到目标对象上,从而间接实现了某种形式上的“展开”。 #### 关于 TypeScript 行为的影响 值得注意的是,即使是在标准 TypeScript 环境下,对于类实例方法重新绑定的行为也可能引发意外的结果[^2]。因此,在尝试任何涉及重写已定义行为的操作之前,请务必充分测试以确保预期效果得以保持。 另外需要注意受保护成员(`protected`)仅能在特定范围内被访问[^3],这进一步限定了哪些地方可以直接操纵这些内部数据结构及其关联逻辑。 ### 总结 综上所述,ArkTS 当前版本尚不具备直接支持解构赋值的能力;不过借助显式的逐项读取或是自定义辅助工具(如上述提到的 `extendObject` 方法),开发者依然有能力高效管理复杂的数据交互需求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值