返回

JavaScript对象创建和属性访问详解

前端

在JavaScript中,对象是一种包含属性(key-value对)的数据结构,用于存储和管理数据。对象有两种创建方式:声明形式和构造形式。

声明形式

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

构造形式

const person = new Object();
person.name = "John Doe";
person.age = 30;
person.city = "New York";

对象属性

对象的属性可以是任何类型的值,包括字符串、数字、布尔值、数组、对象等。

属性访问

可以通过点运算符(.)或方括号([]`)来访问对象的属性。

console.log(person.name); // "John Doe"
console.log(person["age"]); // 30

原型属性

每个对象都有一个原型对象,原型对象包含一些默认属性和方法,这些属性和方法可以被对象继承。

console.log(person.toString()); // "[object Object]"
console.log(person.hasOwnProperty("name")); // true

属性定义

可以通过Object.defineProperty()方法来定义对象的属性。

Object.defineProperty(person, "salary", {
  value: 10000,
  writable: true,
  enumerable: true,
  configurable: true
});

属性值

属性的值可以通过点运算符(.)或方括号([]`)来获取或设置。

person.salary = 12000;
console.log(person.salary); // 12000

属性类型

属性的类型可以通过typeof运算符来获取。

console.log(typeof person.name); // "string"
console.log(typeof person.age); // "number"
console.log(typeof person.city); // "string"

属性访问器

可以通过Object.getOwnPropertyDescriptor()方法来获取对象的属性访问器。

const descriptor = Object.getOwnPropertyDescriptor(person, "name");
console.log(descriptor.get); // function () { return this.name; }
console.log(descriptor.set); // function (value) { this.name = value; }

属性符

属性符是一个对象,它包含了属性的各种信息,包括属性的值、类型、访问器等。

const descriptor = {
  value: "John Doe",
  writable: true,
  enumerable: true,
  configurable: true
};
Object.defineProperty(person, "name", descriptor);

对象操作

可以使用Object.keys(), Object.values()Object.entries()方法来操作对象。

console.log(Object.keys(person)); // ["name", "age", "city", "salary"]
console.log(Object.values(person)); // ["John Doe", 30, "New York", 12000]
console.log(Object.entries(person)); // [["name", "John Doe"], ["age", 30], ["city", "New York"], ["salary", 12000]]

JavaScript对象是JavaScript中最重要的数据结构之一,掌握JavaScript对象的相关知识,对于深入理解JavaScript语言非常有帮助。