对象
对象
概述
在JavaScript中,对象(Object)是一种复合值,它允许你将多个值(原始值或其他对象)组织成一个结构化的实体。对象是通过键值对(key-value pairs)来存储数据的,其中键(key)是一个字符串(或Symbol),而值(value)可以是任何数据类型,包括原始值(如数字、字符串)、其他对象或函数。
对象基本操作
创建对象
在JavaScript中,有几种创建对象的方法:
对象字面量:
1
2
3
4
5
6
7let person = {
name: "Alice",
age: 30,
greet: function() {
console.log("Hello, my name is " + this.name);
}
};构造函数:
1
2
3
4
5
6
7
8
9function Person(name, age) {
this.name = name;
this.age = age;
this.greet = function() {
console.log("Hello, my name is " + this.name);
};
}
let person = new Person("Alice", 30);Object.create()
方法:1
2
3
4
5
6
7
8
9let proto = {
greet: function() {
console.log("Hello!");
}
};
let person = Object.create(proto);
person.name = "Alice";
person.age = 30;类(ES6及更高版本):
1
2
3
4
5
6
7
8
9
10
11
12class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Hello, my name is " + this.name);
}
}
let person = new Person("Alice", 30);
访问对象属性
你可以通过点(.
)或方括号([]
)语法来访问对象的属性:
1 | console.log(person.name); // 输出: Alice |
添加或修改对象属性
你可以通过赋值操作来添加或修改对象的属性:
1 | person.job = "Engineer"; // 添加新属性 |
删除对象属性
你可以使用 delete
操作符来删除对象的属性:
1 | delete person.job; // 删除 job 属性 |
在JavaScript中,Object.keys()
、Object.values()
和 Object.entries()
是三个用于遍历对象自身可枚举属性(即非继承的、非Symbol类型的属性)的静态方法。这些方法都返回一个数组,但数组的内容有所不同。
对象方法
Object.keys()
Object.keys()
方法返回一个数组,其包含对象自身的所有可枚举属性键(即属性的名字,作为字符串)。
1 | const obj = { |
Object.values()
Object.values()
方法返回一个数组,其包含对象自身的所有可枚举属性值(即属性的值)。
1 | const obj = { |
Object.entries()
Object.entries()
方法返回一个数组,其元素是对象自身的所有可枚举属性的键值对数组(即每个元素都是一个包含两个元素的数组,第一个元素是键,第二个元素是值)。
1 | const obj = { |
遍历对象
在JavaScript中,遍历对象(即访问对象的所有可枚举属性)可以通过多种方法实现。以下是一些常用的遍历对象的方式:
for…in循环
for...in
循环用于遍历对象的可枚举属性(包括从原型链上继承的可枚举属性,但可以通过 hasOwnProperty
方法来过滤掉这些继承的属性)。
1 | const obj = { |
forEach方法
1 | const obj = { |