下面是JavaScript 常用方法和功能的分类汇总,分多篇总结,此为第三篇:对象方法。
- 对象方法
1. Object.keys(obj): 返回一个包含对象所有可枚举属性名称的数组。
const obj = { a: 1, b: 2 };
console.log(Object.keys(obj)); // 输出 ["a", "b"]
2. Object.values(obj): 返回一个包含对象所有可枚举属性值的数组。
const obj = { a: 1, b: 2 };
console.log(Object.values(obj)); // 输出 [1, 2]
3. Object.entries(obj): 返回一个包含对象所有可枚举属性 [key, value] 对的数组。
const obj = { a: 1, b: 2 };
console.log(Object.entries(obj)); // 输出 [["a", 1], ["b", 2]]
4. Object.assign(target, ...sources): 将所有可枚举属性的值从一个或多个源对象复制到目标对象。
const target = { a: 1 };
const source = { b: 2 };
Object.assign(target, source);
console.log(target); // 输出 { a: 1, b: 2 }
5. Object.freeze(obj): 冻结对象,使其不可修改。
const obj = { a: 1 };
Object.freeze(obj);
obj.a = 2; // 无效操作
console.log(obj.a); // 输出 1
6. Object.seal(obj): 密封对象,防止添加新属性,但可以修改现有属性。
const obj = { a: 1 };
Object.seal(obj);
obj.a = 2; // 有效操作
obj.b = 3; // 无效操作
console.log(obj); // 输出 { a: 2 }
7. Object.create(proto): 创建一个新对象,使用指定的原型对象和可选的属性。
const proto = { greet() { return "Hello"; } };
const obj = Object.create(proto);
console.log(obj.greet()); // 输出 "Hello"
8. Object.defineProperty(obj, prop, descriptor): 在对象上定义一个新属性,或修改现有属性。
const obj = {};
Object.defineProperty(obj, 'a', { value: 1, writable: false });
obj.a = 2; // 无效操作
console.log(obj.a); // 输出 1