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; // 尝试设置无效的年龄,将会在控制台输出错误信息

相关推荐

  1. ES6基本语法)——对象

    2024-07-17 16:08:03       21 阅读
  2. ES6基础语法

    2024-07-17 16:08:03       56 阅读
  3. es6基础语法

    2024-07-17 16:08:03       20 阅读
  4. ES6基本语法(一)

    2024-07-17 16:08:03       23 阅读
  5. ES6 对象的新增方法(十

    2024-07-17 16:08:03       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 16:08:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 16:08:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 16:08:03       62 阅读
  4. Python语言-面向对象

    2024-07-17 16:08:03       72 阅读

热门阅读

  1. TG群导航机器人:深度检索技术的创新应用

    2024-07-17 16:08:03       24 阅读
  2. 请求与响应的方式

    2024-07-17 16:08:03       22 阅读
  3. openfeign的概念作用和使用流程

    2024-07-17 16:08:03       22 阅读
  4. Blob数据格式怎么转换成ArrayBuffer

    2024-07-17 16:08:03       22 阅读
  5. Qt篇——在线程中更新ui控件

    2024-07-17 16:08:03       22 阅读
  6. 520. 检测大写字母

    2024-07-17 16:08:03       24 阅读
  7. CSharp类和对象练习--求Pi的值

    2024-07-17 16:08:03       43 阅读
  8. 第一阶段面试题总结

    2024-07-17 16:08:03       18 阅读