当前位置:首页 > JavaScript

js 实现类

2026-03-14 12:13:37JavaScript

在JavaScript中实现类(Class)可以通过多种方式,以下是常见的几种方法:

使用ES6的class语法

ES6引入了class关键字,提供更接近传统面向对象语言的语法:

class Person {
  constructor(name) {
    this.name = name;
  }

  greet() {
    return `Hello, ${this.name}!`;
  }
}

const person = new Person('Alice');
console.log(person.greet()); // 输出: Hello, Alice!

使用构造函数和原型链(ES5方式)

在ES6之前,通常通过构造函数和原型链实现类:

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

Person.prototype.greet = function() {
  return 'Hello, ' + this.name + '!';
};

var person = new Person('Bob');
console.log(person.greet()); // 输出: Hello, Bob!

使用工厂函数

工厂函数返回一个新对象,适合不需要继承的场景:

function createPerson(name) {
  return {
    name,
    greet() {
      return `Hello, ${this.name}!`;
    }
  };
}

const person = createPerson('Charlie');
console.log(person.greet()); // 输出: Hello, Charlie!

使用闭包实现私有成员

通过闭包可以模拟私有变量:

class Counter {
  #count = 0; // 私有字段

  increment() {
    this.#count++;
  }

  getCount() {
    return this.#count;
  }
}

const counter = new Counter();
counter.increment();
console.log(counter.getCount()); // 输出: 1

使用静态方法和属性

静态成员属于类本身而非实例:

class MathUtils {
  static PI = 3.14159;

  static square(x) {
    return x * x;
  }
}

console.log(MathUtils.square(2)); // 输出: 4

继承的实现

通过extends实现继承:

js 实现类

class Animal {
  constructor(name) {
    this.name = name;
  }

  speak() {
    console.log(`${this.name} makes a noise.`);
  }
}

class Dog extends Animal {
  speak() {
    super.speak(); // 调用父类方法
    console.log(`${this.name} barks.`);
  }
}

const dog = new Dog('Rex');
dog.speak();

注意事项

  • ES6的class本质仍是基于原型的语法糖
  • 类声明不会提升(hoist),必须先定义后使用
  • 类方法默认不可枚举
  • 类内部默认启用严格模式

标签: js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现vue路由

js实现vue路由

Vue 路由的基本实现 在 Vue.js 中实现路由功能通常使用 Vue Router 库。Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue R…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js 实现图片轮播

js 实现图片轮播

基础实现方案 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS负责样式布局,JavaScript处理轮播逻辑。 <div class="…