JavaScript提供了许多处理对象的方法和技术。下面列举几种常用的方法:
属性访问:
- 使用
.
操作符:通过对象名后跟属性名的方式来访问对象的属性。
const person = { name: 'John', age: 30 }; console.log(person.name); // 输出:'John'
使用[]
操作符:通过对象名后跟属性名的字符串形式来访问对象的属性。
const person = { name: 'John', age: 30 }; console.log(person['age']); // 输出:30
- 属性赋值:
- 使用
.
操作符或[]
操作符进行属性赋值
const person = {}; person.name = 'John'; person['age'] = 30; console.log(person); // 输出:{ name: 'John', age: 30 }
- 对象迭代
for...in
循环:遍历对象的所有可枚举属性(包括继承的属性)。
const person = { name: 'John', age: 30 }; for (let key in person) { console.log(key + ': ' + person[key]); } // 输出: // name: John // age: 30
Object.keys()
:返回一个由对象的可枚举属性组成的数组
const person = { name: 'John', age: 30 }; const keys = Object.keys(person); console.log(keys); // 输出:['name', 'age']
- 对象复制:
- 深拷贝:可以使用第三方库如Lodash、jQuery等实现对象的深拷贝。
- 浅拷贝:使用扩展运算符
...
或Object.assign()
进行对象的浅拷贝。
const obj1 = { a: 1, b: 2 }; const obj2 = { ...obj1 }; const obj3 = Object.assign({}, obj1); console.log(obj2); // 输出:{ a: 1, b: 2 } console.log(obj3); // 输出:{ a: 1, b: 2 }
- 对象合并:
- 使用扩展运算符
...
或Object.assign()
将多个对象合并为一个新对象
const obj1 = { a: 1 }; const obj2 = { b: 2 }; const mergedObj = { ...obj1, ...obj2 }; // 或者 const mergedObj = Object.assign({}, obj1, obj2); console.log(mergedObj); // 输出:{ a: 1, b: 2 }
- 对象属性检查和删除:
hasOwnProperty()
:检查对象是否具有指定属性,不包括继承的属性
const person = { name: 'John', age: 30 }; console.log(person.hasOwnProperty('name')); // 输出:true console.log(person.hasOwnProperty('gender')); // 输出:false
delete
操作符:删除对象的属性。
const person = { name: 'John', age: 30 }; delete person.age; console.log(person); // 输出:{ name: 'John' }