Object方法细致且丰富,以下是一些方法的简要介绍和小例子:
- keys:返回一个对象的所有键名组成的数组。
const obj = {name: 'Alice', age: 23, gender: 'female'};
const keysArr = Object.keys(obj);
console.log(keysArr); // ['name', 'age', 'gender']
- values:返回一个对象的所有键值组成的数组。
const obj = {name: 'Alice', age: 23, gender: 'female'};
const valuesArr = Object.values(obj);
console.log(valuesArr); // ['Alice', 23, 'female']
- defineProperties:为对象增加新属性或修改已有属性的特性,可用于定义getter和setter函数。
const obj = {};
Object.defineProperties(obj, {
name: {
value: 'Alice',
writable: false
},
age: {
value: 23,
writable: false
},
gender: {
get() {
return 'female';
}
}
});
console.log(obj.name); // 'Alice'
console.log(obj.age); // 23
console.log(obj.gender); // 'female'
- create:以指定对象为原型创建新对象。
const person = {
greet() {
console.log('Hello!')
}
};
const alice = Object.create(person);
alice.greet(); // 'Hello!'
- assign:复制一个或多个对象的全部或部分属性到目标对象。
const obj1 = {name: 'Alice'};
const obj2 = {age: 23};
const obj3 = {gender: 'female'};
const obj = Object.assign({}, obj1, obj2, obj3);
console.log(obj); // {name: 'Alice', age: 23, gender: 'female'}
- getOwnPropertyDescriptor:返回指定对象指定属性的描述对象。可以用这个方法查询该属性的特性。
const obj = {name: 'Alice', age: 23};
const descriptor = Object.getOwnPropertyDescriptor(obj, 'age');
console.log(descriptor); // {value: 23, writable: true, enumerable: true, configurable: true}
- hasOwn:判断对象是否具有指定属性。
const obj = {name: 'Alice', age: 23};
console.log(obj.hasOwnProperty('name')); // true
console.log(obj.hasOwnProperty('gender')); // false