返回

JavaScript对象分类大全:从构造函数到ES6新语法class,全面解析!

前端

一、构造函数
构造函数就是可以构造对象的函数,用一个例子来说明:

1.假如需要写一个程序,通过正方形的边长计算周长,我们首先需要定义一个正方形类,然后通过这个类来创建正方形对象,最后通过这个对象来计算周长。

function Square(sideLength) {
  this.sideLength = sideLength;
}

Square.prototype.getPerimeter = function() {
  return 4 * this.sideLength;
};

const square = new Square(5);
const perimeter = square.getPerimeter();

console.log(perimeter); // 20

在这个例子中,Square函数就是一个构造函数,它用来创建square对象。square对象有一个sideLength属性,表示正方形的边长,还有一个getPerimeter方法,用来计算正方形的周长。

二、数组对象
数组对象是JavaScript中的一种特殊对象,它可以存储一系列元素。数组对象可以通过多种方式创建,最常见的方式是使用字面量语法:

const arr = [1, 2, 3, 4, 5];

数组对象也可以通过Array()构造函数创建:

const arr = new Array(1, 2, 3, 4, 5);

数组对象具有许多有用的方法,例如push()pop()shift()unshift()slice()splice()sort()reverse()等。

三、函数对象
函数对象是JavaScript中的一种特殊对象,它可以存储一段代码。函数对象可以通过多种方式创建,最常见的方式是使用函数字面量语法:

const func = function() {
  console.log('Hello, world!');
};

函数对象也可以通过Function()构造函数创建:

const func = new Function('console.log("Hello, world!")');

函数对象具有许多有用的属性,例如namelengtharguments等。

四、ES6函数新语法class
ES6中引入了新的函数语法classclass可以用来定义类。类是JavaScript中的一种语法糖,它可以使代码更易于组织和维护。

class Square {
  constructor(sideLength) {
    this.sideLength = sideLength;
  }

  getPerimeter() {
    return 4 * this.sideLength;
  }
}

const square = new Square(5);
const perimeter = square.getPerimeter();

console.log(perimeter); // 20

在这个例子中,Square类使用class语法定义,它与前面使用构造函数定义的Square类具有相同的功能。

除了以上四种基本的对象类型外,JavaScript中还有许多其他类型的对象,例如:

  • 日期对象
  • 正则表达式对象
  • 错误对象
  • DOM对象
  • BOM对象
  • Web API对象等