📜  JavaScript ES5 对象方法(1)

📅  最后修改于: 2023-12-03 14:42:24.590000             🧑  作者: Mango

JavaScript ES5 对象方法

在 Javascript 中,对象是一种复合数据类型,由连续的键值对组成。对象方法是针对对象的操作,使得开发者可以更方便的操作和管理对象。ES5 中提供了一些内置的对象方法,来帮助我们更轻松的操作对象。

Object.keys()

Object.keys() 方法返回一个给定对象的所有可枚举属性的数组。

const person = {
  name: 'John',
  age: 30,
  city: 'New York'
};

const keys = Object.keys(person);
console.log(keys); // ["name", "age", "city"]
Object.values()

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()

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()

Object.freeze() 方法冻结一个对象。被冻结的对象不能添加、删除或修改属性。

const person = {
  name: 'John',
  age: 30,
  city: 'New York'
};

Object.freeze(person);

person.name = 'Bob'; // 不起作用

console.log(person.name); // "John"
Object.seal()

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()

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 提供的几个对象方法,希望对你有所帮助!