返回

对象创建 & JS中的常见方法

前端

在JavaScript中,对象是无序键值对的集合,赋予程序员组织和操纵数据的强大能力。对象是构建复杂应用程序、管理数据结构和促进代码重用不可或缺的工具。

对象创建

创建对象有两种主要方法:对象字面量和new

  • 对象字面量: 使用大括号{}包围键值对,如:
const person = {
  name: 'John Doe',
  age: 30
};
  • new 使用构造函数,一种特殊的函数,以new关键字调用,如:
function Person(name, age) {
  this.name = name;
  this.age = age;
}

const person = new Person('John Doe', 30);

常见方法

JavaScript提供了各种方法来操纵和访问对象属性:

  • `Object.keys(): 返回一个包含对象所有键的数组。
  • `Object.values(): 返回一个包含对象所有值的数组。
  • `Object.entries(): 返回一个包含所有键值对的数组。
  • `Object.freeze(): 使对象不可变,防止添加、删除或修改属性。
  • `Object.seal(): 使对象不可扩展,但允许修改现有属性。
  • `Object.assign(): 合并多个对象的属性。
  • `Object.create(): 创建一个具有指定原型的新对象。

原型和继承

原型是对象的一个特殊属性,指向该对象的构造函数。通过原型,可以访问父对象的属性和方法。

JavaScript支持继承,允许子对象从父对象继承属性和方法。使用Object.create()创建新对象时,可以指定一个原型对象。

例子

function Vehicle(make, model) {
  this.make = make;
  this.model = model;
}

Vehicle.prototype.drive = function() {
  console.log('Driving...');
};

function Car(make, model, year) {
  // 调用父构造函数
  Vehicle.call(this, make, model);

  // 添加子类属性
  this.year = year;
}

// 继承父类原型
Car.prototype = Object.create(Vehicle.prototype);

// 添加子类方法
Car.prototype.accelerate = function() {
  console.log('Accelerating...');
};

// 创建一个Car对象
const car = new Car('Toyota', 'Camry', 2020);

// 访问父类属性
console.log(car.make); // Toyota

// 调用父类方法
car.drive(); // Driving...

// 访问子类属性
console.log(car.year); // 2020

// 调用子类方法
car.accelerate(); // Accelerating...

结论

对象在JavaScript中发挥着至关重要的作用,提供了一种高效的方式来管理数据和构建复杂应用程序。通过了解对象创建、常见方法、原型和继承,您可以充分利用JavaScript的强大功能,创建灵活且可扩展的代码。