对象是什么?
JavaScript 对象是键值对的集合,用于存储复杂数据结构。键是用于标识值的可变属性名,而值可以是任何数据类型(包括对象)。
对象创建
对象可以通过多种方式创建:
- 字面量表示法:
{ key1: value1, key2: value2, ... }
new Object()
构造函数:new Object()
Object.create()
函数:Object.create(null)
或Object.create(existingObject)
对象属性
对象属性可以是数据或函数(方法),可通过以下方式访问和修改:
- 点表示法:
object.key
- 方括号表示法:
object["key"]
原型继承
JavaScript 对象遵循原型继承模式,这意味着它们从其原型继承属性和方法。原型是包含所有对象的共享属性和方法的对象。默认情况下,所有对象都继承自 Object.prototype
对象。
键枚举
可以遍历对象键使用以下方法:
Object.keys()
:返回包含对象所有可枚举键的数组。Object.getOwnPropertyNames()
:返回包含对象所有键(包括不可枚举键)的数组。
扩展和合并
对象可以用多种方式扩展和合并:
Object.assign()
:将一个或多个对象的属性复制到目标对象中。- 扩展运算符(...):在对象字面量或对象扩展中展开对象。
Object.freeze()
和Object.seal()
:创建不可修改或部分不可修改的对象。
其他方法
对象还提供了其他有用的方法:
Object.is()
:严格比较两个对象。Object.defineProperty()
:添加或修改对象的属性。Object.getPrototypeOf()
:获取对象的原型。Object.setPrototypeOf()
:设置对象的原型。
底层实现
JavaScript 对象在内部实现为哈希表,其中键映射到值。这种实现提供了快速查找和插入,使其高效地存储和检索数据。
总结
JavaScript 对象是用于存储复杂数据结构的强大工具。它们支持多种创建、访问和修改方法,并提供了原型继承以实现代码重用。理解 JavaScript 对象的内部机制对于优化代码性能和编写健壮且可维护的应用程序至关重要。