js 对象常用方法和示例

54 阅读2分钟

对象方法主要用于创建对象、修改或查询对象的属性名和属性值,帮助开发者高效地操作对象。

Object.create()

描述Object.create() 方法用于创建一个新对象,使用现有的对象作为新创建对象的原型。

const person = {
    greet() {
        console.log('Hello!');
    }
};

const john = Object.create(person);
john.greet(); // Hello!

Object.assign(target, ...sources)

描述Object.assign() 方法将一个或多个源对象复制到目标对象中,并返回目标对象。常用于对象的浅拷贝或将多个对象合并到一个对象中。

const target = { name: 'John' };
const source = { age: 30, job: 'Developer' };
const result = Object.assign(target, source);
console.log(result); // { name: "John", age: 30, job: "Developer" }

Object.keys(obj)

描述Object.keys() 把对象的属性名组成一个数组并返回;

示例

const person = {
    name: 'John',
    age: 30
};
const keys = Object.keys(person);
console.log(keys); // ["name", "age"]

Object.values(obj)

描述Object.values() 把对象的属性值组成一个数组并返回;

示例

const person = {
    name: 'John',
    age: 30
};
const values = Object.values(person);
console.log(values); // ["John", 30]

Object.entries(obj)

描述Object.entries() 方法返回一个二维数组,数组的每个元素是一个存储键值对 [key, value]的数组

示例

const person = {
    name: 'John',
    age: 30
};
const entries = Object.entries(person);
console.log(entries); // [["name", "John"], ["age", 30]]

Object.defineProperty(obj, prop, descriptor)

描述Object.defineProperty() 方法可以在一个对象上定义一个新属性,或者修改现有属性的特性,并返回该对象。

示例

const obj = {};
Object.defineProperty(obj, 'a', {
    value: 1,
    writable: true,
    enumerable: true,
    configurable: true
});
console.log(obj.a); // 1

Object.hasOwnProperty(prop)

描述Object.hasOwnProperty() 方法用于判断对象自身是否具有指定的属性,返回布尔值 truefalse

示例

const obj = { a: 1 };
console.log(obj.hasOwnProperty('a')); // true
console.log(obj.hasOwnProperty('b')); // false

Proxy

描述Proxy 是一种用于创建对象代理的机制,代理对象后拦截并自定义对象的基本操作(如属性访问、赋值、函数调用等;

示例

javascript
复制代码
const target = {};

const handler = {
    set: function(target, prop, value, receiver) {
        if (typeof value === 'number') {
            target[prop] = value;
            return true;
        } else {
            console.log("Property value must be a number.");
            return false;
        }
    }
};

const proxy = new Proxy(target, handler);
proxy.age = 30; // 正常赋值
proxy.age = "thirty"; // 控制台输出 "Property value must be a number."