📅  最后修改于: 2023-12-03 14:42:24.590000             🧑  作者: Mango
在 Javascript 中,对象是一种复合数据类型,由连续的键值对组成。对象方法是针对对象的操作,使得开发者可以更方便的操作和管理对象。ES5 中提供了一些内置的对象方法,来帮助我们更轻松的操作对象。
Object.keys()
方法返回一个给定对象的所有可枚举属性的数组。
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const keys = Object.keys(person);
console.log(keys); // ["name", "age", "city"]
Object.values()
方法返回一个给定对象的所有可枚举属性值的数组。
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const values = Object.values(person);
console.log(values); // ["John", 30, "New York"]
Object.entries()
方法返回一个给定对象的所有可枚举属性键值对的数组。
const person = {
name: 'John',
age: 30,
city: 'New York'
};
const entries = Object.entries(person);
console.log(entries); // [["name", "John"], ["age", 30], ["city", "New York"]]
Object.freeze()
方法冻结一个对象。被冻结的对象不能添加、删除或修改属性。
const person = {
name: 'John',
age: 30,
city: 'New York'
};
Object.freeze(person);
person.name = 'Bob'; // 不起作用
console.log(person.name); // "John"
Object.seal()
方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。但是,标记为可写的现有属性仍然可以修改他们的值。
const person = {
name: 'John',
age: 30,
city: 'New York'
};
Object.seal(person);
person.name = 'Bob'; // 可以修改
person.salary = 5000; // 不起作用
console.log(person.name); // "Bob"
console.log(person.salary); // undefined
Object.defineProperty()
方法允许我们通过属性描述符定义新属性,或修改现有属性。
const person = {};
Object.defineProperty(person, 'name', {
value: 'John',
writable: false, // 将属性设置为只读的
enumerable: true,
configurable: false
});
console.log(person.name); // "John"
person.name = 'Bob'; // 不起作用
console.log(person.name); // "John"
以上就是 ES5 提供的几个对象方法,希望对你有所帮助!