在 JavaScript 中,对象是最常用的数据结构之一,通常用于存储多个值,并通过键(属性)来访问这些值。对象可以包含不同类型的值,例如字符串、数字、数组、函数等。

以下是一些 JavaScript 对象的实例,展示了如何创建、操作和使用对象。

1. 创建一个简单的对象

// 创建一个简单的对象
let person = {
  name: "John",
  age: 30,
  city: "New York"
};

// 访问对象的属性
console.log(person.name);  // 输出: John
console.log(person["age"]); // 输出: 30

2. 使用对象方法

对象也可以包含函数,称为“方法”。方法是对象的行为。

let person = {
  name: "Alice",
  age: 25,
  greet: function() {
    console.log("Hello, " + this.name);
  }
};

// 调用对象的方法
person.greet();  // 输出: Hello, Alice

3. 修改和添加对象属性

可以动态地修改对象的属性或添加新的属性。

let person = {
  name: "John",
  age: 30
};

// 修改属性
person.age = 31;

// 添加新属性
person.city = "Los Angeles";

console.log(person.age);   // 输出: 31
console.log(person.city);  // 输出: Los Angeles

4. 使用构造函数创建对象

你也可以使用构造函数创建对象。构造函数通常用来创建具有相同属性和方法的多个对象。

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    console.log("Hello, " + this.name);
  };
}

// 使用构造函数创建对象
let person1 = new Person("John", 30);
let person2 = new Person("Alice", 25);

// 调用方法
person1.greet();  // 输出: Hello, John
person2.greet();  // 输出: Hello, Alice

5. 对象的原型

JavaScript 中的对象可以通过原型继承方法。每个对象都有一个原型链,允许对象继承另一个对象的属性和方法。

function Animal(name) {
  this.name = name;
}

Animal.prototype.speak = function() {
  console.log(this.name + " makes a sound.");
};

function Dog(name) {
  Animal.call(this, name);  // 继承 Animal 构造函数
}

// 让 Dog 继承 Animal 的原型
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

let dog = new Dog("Buddy");
dog.speak();  // 输出: Buddy makes a sound.

6. 对象的 this 关键字

在对象方法中,this 关键字指向当前对象。

let person = {
  name: "John",
  age: 30,
  introduce: function() {
    console.log("My name is " + this.name + " and I am " + this.age + " years old.");
  }
};

// 调用方法
person.introduce();  // 输出: My name is John and I am 30 years old.

7. 遍历对象的属性

可以使用 for...in 循环遍历对象的所有可枚举属性。

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

// 使用 for...in 循环遍历属性
for (let key in person) {
  console.log(key + ": " + person[key]);
}
// 输出:
// name: John
// age: 30
// city: New York

8. 对象的 Object.keys()Object.values()

你还可以使用 Object.keys()Object.values() 来获取对象的键或值。

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

// 获取所有键
let keys = Object.keys(person);
console.log(keys);  // 输出: ["name", "age", "city"]

// 获取所有值
let values = Object.values(person);
console.log(values);  // 输出: ["John", 30, "New York"]

9. 对象的 Object.assign()

Object.assign() 用于将一个或多个源对象的所有可枚举属性复制到目标对象。

let person = { name: "John", age: 30 };
let contact = { email: "john@example.com", phone: "1234567890" };

// 合并对象
Object.assign(person, contact);

console.log(person);
// 输出: { name: "John", age: 30, email: "john@example.com", phone: "1234567890" }

10. 删除对象属性

可以使用 delete 运算符来删除对象的属性。

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

// 删除属性
delete person.city;

console.log(person);
// 输出: { name: "John", age: 30 }

总结

  • 对象 是 JavaScript 中用于存储多个值的数据结构,可以包含属性和方法。
  • 通过 this 关键字可以访问对象中的属性。
  • 可以使用构造函数创建多个具有相同属性和方法的对象。
  • JavaScript 对象支持原型继承,可以通过原型链共享方法。
  • Object.keys()Object.values() 可以获取对象的键和值。