跳到主要内容

JS 对象的创建与属性访问

对象的属性遍历

for... in 循环

js
const person = { name: "Alice", age: 25 };

for (let key in person) {
console.log(key, person[key]);
}
// 输出:
// name Alice
// age 25
  • 遍历对象的可枚举属性
  • 包括继承自原型链的属性(可用 hasOwnProperty 过滤)
js
for (let key in person) {
if (person.hasOwnProperty(key)) {
console.log(key, person[key]);
}
}

Object. keys / Object. values / Object. entries

js
const keys = Object.keys(person);     // ["name", "age"]
const values = Object.values(person); // ["Alice", 25]
const entries = Object.entries(person); // [["name","Alice"],["age",25]]

entries.forEach(([key, value]) => {
console.log(key, value);
});
  • 更灵活,适合数组方法操作

属性描述符与对象操作

js
const obj = {};
Object.defineProperty(obj, "name", {
value: "Alice",
writable: false, // 不可修改
enumerable: true,
configurable: true
});

console.log(obj.name); // Alice
// obj.name = "Bob"; // 不可修改
  • 可精确控制属性的特性

总结

  • 对象创建方式:字面量、构造函数、 Object.create
  • 属性访问:点语法、方括号语法
  • 属性操作:增删、遍历、描述符
  • 对象是 JS 核心数据结构,方法和属性的使用灵活多样