HLJ 发布于
2025-06-11 09:25:56
0阅读

JavaScript 对象(Object)

JavaScript 对象(Object)

JavaScript 对象是 JavaScript 中最基本的数据结构之一,用于存储键值对的集合。对象是属性的容器,其中每个属性都有一个名称(key)和一个值(value)。

创建对象

有几种方式可以创建 JavaScript 对象:

1. 对象字面量语法 (最常用)

const person = {
  name: 'John',
  age: 30,
  isStudent: false,
  greet: function() {
    console.log('Hello!');
  }
};

2. 使用 new Object()

const person = new Object();
person.name = 'John';
person.age = 30;

3. 使用构造函数

function Person(name, age) {
  this.name = name;
  this.age = age;
}

const john = new Person('John', 30);

4. 使用 Object.create()

const personProto = {
  greet: function() {
    console.log('Hello!');
  }
};

const john = Object.create(personProto);
john.name = 'John';

访问对象属性

// 点表示法
console.log(person.name); // 'John'

// 方括号表示法
console.log(person['age']); // 30

// 动态访问属性
const propName = 'name';
console.log(person[propName]); // 'John'

对象方法

对象可以包含函数作为属性值,这些函数称为方法:

const person = {
  name: 'John',
  sayHello: function() {
    console.log(`Hello, my name is ${this.name}`);
  }
};

person.sayHello(); // "Hello, my name is John"

对象特性

1. 属性简写 (ES6)

const name = 'John';
const age = 30;

const person = { name, age };
// 等同于 { name: name, age: age }

2. 方法简写 (ES6)

const person = {
  name: 'John',
  sayHello() {
    console.log('Hello!');
  }
};

3. 计算属性名 (ES6)

const propName = 'age';

const person = {
  name: 'John',
  [propName]: 30
};

console.log(person.age); // 30

对象操作

1. 添加/修改属性

person.job = 'Developer';
person['country'] = 'USA';

2. 删除属性

delete person.age;

3. 检查属性是否存在

console.log('name' in person); // true
console.log(person.hasOwnProperty('name')); // true

4. 遍历对象属性

for (let key in person) {
  console.log(`${key}: ${person[key]}`);
}

// 获取所有属性名
const keys = Object.keys(person);

// 获取所有属性值
const values = Object.values(person);

// 获取所有键值对
const entries = Object.entries(person);

对象复制

浅拷贝

const copy = Object.assign({}, person);
// 或使用扩展运算符
const copy = { ...person };

深拷贝

const deepCopy = JSON.parse(JSON.stringify(person));
// 注意:这种方法会丢失函数和特殊对象类型

原型和继承

JavaScript 使用原型继承:

const animal = {
  eats: true
};

const rabbit = {
  jumps: true,
  __proto__: animal // 设置原型
};

console.log(rabbit.eats); // true (从原型继承)

ES6 类语法

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  greet() {
    console.log(`Hello, my name is ${this.name}`);
  }
}

const john = new Person('John', 30);
john.greet();

对象是 JavaScript 编程的核心概念,理解对象对于掌握 JavaScript 至关重要。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-06-11/782.html
最后生成于 2025-06-13 20:52:26
此内容有帮助 ?
0