前端对象-object
前端对象是JavaScript中用于表示数据和功能集合的核心概念,其设计遵循“万物皆对象”的抽象原则。以下从多个维度进行说明:
一、对象定义与特征
本质
对象是由键值对构成的无序数据集合,键名与对应的值通过冒号分隔,整体包裹在大括号中,如{name: "张三", age: 18}
所有JavaScript数据类型(如字符串、数组、函数等)本质上都是对象或其派生形式
核心特征
封装性:对象将属性和方法封装为独立实体,调用者无需关注内部实现细节
继承性:通过原型链实现继承,例如所有对象默认继承自
Object
基类
二、对象的创建方式
三、对象类型分类
内置对象
语言级对象:如
String
、Date
、Array
、Math
等,提供基础数据操作能力
示例:
let str = new String("Hello"); // 字符串对象 let date = new Date(); // 日期对象
宿主对象:由运行环境提供,如浏览器中的
window
、document
等自定义对象
开发者根据需求定义的数据结构,如let user = {id: 1, login() {...}}
四、对象操作与迭代
属性与方法访问
点语法:
obj.property
方括号语法:
obj["property"]
(支持动态属性名)迭代方法
for...in
循环:遍历对象自身及原型链上的可枚举属性Object.keys()
/Object.values()
:获取对象自身可枚举属性的键/值数组Map对象:专门用于键值对存储,提供
keys()
、values()
、entries()
等迭代接口
const map = new Map([['a', 1], ['b', 2]]); for (let [key, value] of map.entries()) { ... }
可迭代对象
显式实现Symbol.iterator
方法的对象(如数组、Map)可通过for...of
遍历普通对象默认不可迭代,但可通过自定义迭代器实现
五、典型应用场景
DOM操作:通过
document.getElementById()
返回的DOM节点对象进行页面元素控制数据封装:组织复杂数据,如用户信息集合
{name: "王五", orders: [...]}
组件化开发:前端框架(如React/Vue)中,组件常以对象形式管理状态与生命周期