返回

从Object.create()、new Object()到{},对象创建的差异

前端

JavaScript 中创建对象的方法有很多,包括使用字面量、new Object() 构造函数和 Object.create() 方法。每种方法都有其独特的用途和优势。

1. 字面量

字面量是创建对象最简单直接的方法。它使用大括号 {} 来定义对象属性和方法。例如:

const person = {
  name: "John Doe",
  age: 30,
  greet: function() {
    console.log("Hello, my name is " + this.name);
  }
};

2. new Object() 构造函数

new Object() 构造函数也可以用于创建对象。它与字面量非常相似,但需要使用 new 来调用构造函数。例如:

const person = new Object();
person.name = "John Doe";
person.age = 30;
person.greet = function() {
  console.log("Hello, my name is " + this.name);
};

3. Object.create() 方法

Object.create() 方法专门用于对象继承。它接受两个参数:一个对象作为原型,另一个对象作为属性。例如:

const person = {
  name: "John Doe",
  age: 30,
  greet: function() {
    console.log("Hello, my name is " + this.name);
  }
};

const employee = Object.create(person);
employee.jobTitle = "Software Engineer";

差异

特性 字面量 new Object() Object.create()
语法 const person = { ... } const person = new Object() const person = Object.create(null)
继承 不支持 不支持 支持
性能 最快 中等 最慢
用例 快速创建简单对象 创建复杂对象 创建对象并指定原型

结论

字面量、new Object() 构造函数和 Object.create() 方法都是创建 JavaScript 对象的有效方法。每种方法都有其独特的用途和优势。