自学内容网 自学内容网

ES6基本语法(四)——对象和类

对象

对象定义与初始化

let student = {
    name: "xiaoming",
    age: 18 // 注意年龄应该使用数值类型,所以去掉引号
};

向对象添加新的属性

student.id = "123456";
// 如果添加的属性已经有原值,那么就取代原来的值
student.age = 19;

删除属性

使用 delete 关键字删除属性是正确的:

delete student.id; // 删除 id 属性

检查对象是否包含指定属性

使用 in 关键字检查对象是否包含指定属性也是正确的:

let ifExist = "age" in student; // 检查 student 对象是否包含 age 属性

获取对象的属性数目

获取对象的属性数目可以通过 Object.keys() 方法:

let size = Object.keys(student).length; // 返回属性数目的计数

使用 for-in 循环遍历对象

for (let key in student) {
    console.log(key, student[key]); // 注意这里应该是 student[key] 而不是 person[key]
}

使用 forEach 方法遍历对象的属性和值

JavaScript 提供了 Object.keys() 方法来遍历对象的属性,并且可以用 forEach 方法来遍历这些属性:

Object.keys(student).forEach(key => {
    console.log(key, student[key]);
});
Object.entries(student).forEach(([key, value]) => {
    console.log("forEach", key, value);
});

Object.entries() 方法会返回一个包含对象所有可枚举属性的数组的数组,每个内部数组包含两个元素,分别代表对象的键和值。而 Object.keys() 方法只会返回一个包含对象所有可枚举属性的数组,它不会提供属性值。

类class、模板字符串

一个类的创建

class Student {
name;
age;
//如果在类中没有显示声明属性,但在构造方法中引用了未声明的属性,那会自动将其视为实例属性

//构造函数
constructor(name, age) {
this.name = name;
this.age = age;
}

//返回个人信息的方法
info() {
return `姓名:${this.name} 年龄:${this.age}`;
}
}

创建类的实例并使用方法的例子:

let studentInstance = new Student('小红', 20);
console.log(studentInstance.info()); // 输出: 姓名:小红 年龄:20

此外,模板字符串(使用反引号 `` 包围的字符串)可以嵌入表达式,通过 ${expression} 的形式。这是一种编写包含变量或表达式的字符串的好方法。

私有属性、存取器

私有属性是指尽在类的内部可以访问和操作的属性,外部是无法直接访问和修改的。

class Student {
name;
#age;   //#用来声明私有属性

constructor(name, age) {
this.name = name;
this.age = age;
}

//下面是两个存取器
get age() {
return this.#age;
}

set age(value) {
this.#age = value;
}

info() {
return `姓名:${this.name},年龄:${this.age}`}
}

使用存取器的例子:

let studentInstance = new Student('小红', 20);
console.log(studentInstance.info()); // 输出: 姓名:小红,年龄:20

studentInstance.age = 21; // 正确设置年龄
console.log(studentInstance.info()); // 输出: 姓名:小红,年龄:21

studentInstance.age = -1; // 尝试设置无效的年龄,将会在控制台输出错误信息

原文地址:https://blog.csdn.net/weixin_72939806/article/details/140496021

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!