JavaScript 对象定义:深入指南82


在 JavaScript 中,对象是用于表示真实世界实体或概念的数据结构。它们由键值对组成,其中键是唯一的标识符,而值可以是任何数据类型,包括其他对象。

创建对象

可以通过几种方式创建 JavaScript 对象:
对象字面量:使用花括号 {} 定义键值对:

const person = {
name: "John Doe",
age: 30,
occupation: "Software Engineer"
};

构造函数:使用 new 运算符调用内置 Object 构造函数:

const person = new Object();
= "John Doe";
= 30;
= "Software Engineer";

():使用 () 方法从现有对象创建新对象:

const person = (null);
= "John Doe";
= 30;
= "Software Engineer";


访问对象属性

可以通过点运算符 (.) 或方括号 ([]) 访问对象属性:
点运算符:用于访问浅层属性:

(); // "John Doe"


方括号:可用于访问浅层或深层属性,并允许动态属性名:

(person["name"]); // "John Doe"
(person["occupation"]); // "Software Engineer"


添加和删除属性

可以使用以下方法添加和删除对象属性:
添加属性:使用点运算符或方括号,将新属性分配给对象:

= "@";

删除属性:使用 delete 运算符:

delete ;


对象方法

对象可以具有与之关联的方法,这些方法是附加到对象属性的函数:
创建方法:将函数分配给对象属性:

= function() {
(`Hello, my name is ${}.`);
};


调用方法:使用点运算符调用对象方法:

(); // "Hello, my name is John Doe."


## 对象遍历

可以使用以下方法遍历对象属性:
for-in 循环:遍历对象的可枚举属性:

for (let property in person) {
(`${property}: ${person[property]}`);
}

():返回对象所有属性名称的数组:

const keys = (person);
for (let key of keys) {
(`${key}: ${person[key]}`);
}

():返回对象所有属性值数组:

const values = (person);
for (let value of values) {
(value);
}


## 对象比较

JavaScript 中的对象比较是通过引用进行的,这意味着两个对象相等当且仅当它们引用同一对象时。

要比较对象的内容,可以使用以下方法之一:
():将对象转换为 JSON 字符串,然后比较字符串:

const person1 = { name: "John Doe", age: 30 };
const person2 = { name: "John Doe", age: 30 };
const sameContent = (person1) === (person2); // true


递归比较:使用递归函数比较嵌套对象的内容:

const sameContent = deepEqual(person1, person2); // true
function deepEqual(obj1, obj2) {
if (obj1 === obj2) {
return true;
}

if (typeof obj1 !== "object" || typeof obj2 !== "object") {
return false;
}

const keys1 = (obj1);
const keys2 = (obj2);

if ( !== ) {
return false;
}

for (let key of keys1) {
if (!deepEqual(obj1[key], obj2[key])) {
return false;
}
}

return true;
}


## 结论

JavaScript 对象是强大的数据结构,用于表示各种数据。通过理解对象定义、访问、修改和比较,您可以有效地利用它们来构建复杂的应用程序。

2024-12-25


上一篇:JavaScript 对象的定义和使用

下一篇:JavaScript 获取路径