当前位置:首页 > JavaScript

js 实现封装

2026-03-02 04:10:32JavaScript

封装的概念

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

js 实现封装

实现封装的方式

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

js 实现封装

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实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

js实现图片放大缩小

js实现图片放大缩小

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

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…