JavaScript 对象赋值揭秘296


前言

在 JavaScript 中,对象是一组键值对的集合,它允许我们将数据组织成结构化的形式。对象赋值是 JavaScript 中一项基本操作,它可以帮助我们创建、修改和使用对象。

对象赋值语法

有两种主要的语法可以用于对 JavaScript 对象进行赋值:
点号(.)赋值:用于访问和修改特定属性的值。
中括号([])赋值:可用于动态访问和修改属性的值。

点号(.)赋值


点号赋值语法如下:```javascript
= value;
```

例如:```javascript
const person = {
name: "John",
age: 30,
};
// 使用点号赋值修改 "age" 属性
= 31;
```

中括号([])赋值


中括号赋值语法如下:```javascript
object["property"] = value;
```

例如:```javascript
const person = {
name: "John",
age: 30,
};
// 使用中括号赋值修改 "name" 属性
person["name"] = "Jane";
```

中括号赋值通常用于动态访问属性,其中属性名存储在变量或字符串中。例如:```javascript
const propertyName = "age";
const person = {
[propertyName]: 30,
};
```

对象浅复制与深复制

在 JavaScript 中,对象赋值时会发生复制操作。根据复制的深度,我们可以将赋值分为浅复制和深复制:
浅复制:仅复制第一层属性,嵌套对象仍然指向原始对象。
深复制:创建新对象并为所有属性(包括嵌套对象)复制值。

浅复制


浅复制使用点号或中括号赋值语法进行,它不会创建新对象。相反,它将原始对象的引用分配给目标对象。例如:```javascript
const originalObject = {
name: "John",
age: 30,
address: {
street: "Main Street",
city: "New York",
},
};
const newObject = originalObject; // 浅复制
= "Jane"; // 修改 newObject 的 "name" 属性
(originalObject); // 也修改了 originalObject 的 "name" 属性
```

在这种情况下,newObject 是对 originalObject 的引用。当修改 newObject 时,也会影响 originalObject。

深复制


深复制创建新对象并为所有属性复制值,包括嵌套对象。可以使用 ()、(()) 或递归函数来实现深复制。例如:```javascript
const originalObject = {
name: "John",
age: 30,
address: {
street: "Main Street",
city: "New York",
},
};
const newObject = ((originalObject)); // 深复制
= "Jane"; // 修改 newObject 的 "name" 属性
(originalObject); // 不影响 originalObject
```

在这种情况下,newObject 是 originalObject 的副本,它有自己的属性副本。修改 newObject 不会影响 originalObject。

JavaScript 中的对象赋值是一个强大的工具,它允许我们操作和修改数据。理解点号和中括号赋值语法以及浅复制与深复制概念对于有效地使用 JavaScript 对象至关重要。

2025-01-15


上一篇:javascript 日期选择器

下一篇:JavaScript 函数传参