js创建对象的5种方式

JavaScript中创建对象有5种常用方式:1. 对象字面量适用于单个对象,语法简洁;2. new Object()显式构造,适合动态添加属性;3. 构造函数可实例化多个相似对象;4. Object.create()实现原型继承;5. ES6类语法清晰,适合面向对象编程。

JavaScript 中创建对象有多种方式,每种都有其适用场景。以下是5种常见且实用的创建对象的方法。

1. 对象字面量(Object Literal)

这是最简单、最常用的创建对象的方式,适合创建单个对象。

特点:语法简洁,可直接定义属性和方法。

示例:

const person = {
  name: 'Alice',
  age: 25,
  greet() {
    console.log('Hello, I am ' + this.name);
  }
};
person.greet(); // 输出: Hello, I am Alice

2. 使用 new Object()

通过构造函数 Object 创建对象,虽然不常用,但语法合法。

特点:显式调用构造函数,适合动态添加属性。

示例:

const car = new Object();
car.brand = 'Toyota';
car.year = 2025;
car.start = function() {
  console.log('Engine started');
};
car.start(); // 输出: Engine started

3. 构造函数方式(Constructor Function)

使用自定义构造函数创建多个相似结构的对象,适合需要复用的对象类型。

特点:可实例化多个对象,支持 this 指向实例。

示例:

function Person(name, age) {
  this.name = name;
  this.age = age;
  this.greet = function() {
    console.log('Hi, I am ' + this.name);
  };
}
const p1 = new Person('Bob', 30);
p1.greet(); // 输出: Hi, I am Bob

4. 使用 Object.create()

基于现有对象创建新对象,用于实现原型继承。

特点:可指定原型对象,灵活控制继承关系。

示例:

const animal = {
  speak() {
    console.log(this.name + ' makes a sound.');
  }
};
const dog = Object.create(animal);
dog.name = 'Rex';
dog.speak(); // 输出: Rex makes a sound.

5. ES6 类(class)

使用 class 语法糖定义对象模板,代码更清晰,适合面向对象编程。

特点:语法更接近传统 OOP,易于理解和维护。

示例:

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  greet() {
    console.log(`Hello, I am ${this.name}`);
  }
}
const p2 = new Person('Charlie', 35);
p2.greet(); // 输出: Hello, I am Charlie

基本上就这些。不同方式适用于不同需求:简单对象用字面量,批量创建可用构造函数或 class,需要继承可用 Object.create()。选择合适方式能让代码更清晰高效。