当前位置:首页 > JavaScript

js实现复用

2026-03-13 15:45:38JavaScript

代码复用方法

函数封装
将重复逻辑封装成函数,通过参数传递差异化部分。例如计算数组平均值和总和的函数可复用:

function calculateStats(arr, type) {
  return type === 'avg' 
    ? arr.reduce((a, b) => a + b, 0) / arr.length
    : arr.reduce((a, b) => a + b, 0);
}

模块化开发
使用ES6模块化拆分功能到独立文件:

// utils.js
export const formatDate = (date) => date.toISOString().split('T')[0];

// app.js
import { formatDate } from './utils.js';
console.log(formatDate(new Date()));

高阶函数
通过函数返回函数实现行为定制:

const multiplier = (factor) => (num) => num * factor;
const double = multiplier(2);
console.log(double(5)); // 输出10

类继承与组合
使用class继承或对象组合复用代码:

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

class Dog extends Animal {
  bark() {
    return `${this.name} barks`;
  }
}

Mixin模式
通过Object.assign实现多重继承:

const canEat = {
  eat() {
    console.log(`${this.name} eats`);
  }
};

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

Object.assign(Cat.prototype, canEat);

自定义Hooks(React)
在React中复用状态逻辑:

function useToggle(initialValue = false) {
  const [value, setValue] = useState(initialValue);
  const toggle = () => setValue(!value);
  return [value, toggle];
}

// 组件中使用
const [isOn, toggleIsOn] = useToggle();

闭包应用
利用闭包保存私有状态:

js实现复用

function createCounter() {
  let count = 0;
  return {
    increment() { count++ },
    getCount() { return count }
  };
}

标签: 复用js
分享给朋友:

相关文章

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js分页实现

js分页实现

分页的基本原理 分页的核心是通过计算当前页码和数据偏移量,从服务器或本地数据中截取对应范围的数据进行展示。通常需要以下参数:当前页码(currentPage)、每页条数(pageSize)、总数据量(…

js实现定位

js实现定位

使用Geolocation API获取当前位置 在JavaScript中,可以通过浏览器内置的Geolocation API获取用户的地理位置信息。该API需要用户授权才能访问位置数据。 if (n…

js实现轮播代码

js实现轮播代码

基础轮播实现 使用HTML、CSS和JavaScript创建一个简单的轮播效果。HTML部分定义轮播容器和图片元素。 <div class="carousel"> <div c…