当前位置:首页 > JavaScript

js 实现封装

2026-03-02 04:10:32JavaScript

封装的概念

封装是面向对象编程的三大特性之一,主要目的是隐藏对象的内部细节,仅对外暴露必要的接口。通过封装可以提高代码的可维护性和安全性。

实现封装的方式

使用闭包 通过函数作用域实现私有变量,只暴露需要公开的方法:

function createCounter() {
  let count = 0; // 私有变量

  return {
    increment() {
      count++;
    },
    getCount() {
      return count;
    }
  };
}

const counter = createCounter();
counter.increment();
console.log(counter.getCount()); // 1
console.log(counter.count); // undefined

ES6 Class 语法 通过类定义中的 # 前缀声明私有字段:

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

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

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

const counter = new Counter();
counter.increment();
console.log(counter.getCount()); // 1
console.log(counter.#count); // 报错

模块模式 利用 IIFE 立即执行函数创建私有作用域:

const module = (function() {
  let privateVar = 'secret';

  function privateMethod() {
    return privateVar;
  }

  return {
    publicMethod() {
      return privateMethod();
    }
  };
})();

console.log(module.publicMethod()); // "secret"
console.log(module.privateVar); // undefined

封装的优势

  • 数据保护:防止外部直接修改内部状态
  • 接口稳定:内部实现变更不影响外部调用
  • 降低耦合:模块间通过清晰接口通信

注意事项

  • TypeScript 提供更完善的 private 修饰符
  • 浏览器环境可能需要 Babel 转译私有字段语法
  • 过度封装可能导致代码复杂度增加

js 实现封装

标签: js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js怎么实现异步

js怎么实现异步

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