当前位置:首页 > JavaScript

js实现after

2026-03-13 15:46:55JavaScript

js实现after

实现 after 方法

在 JavaScript 中实现 after 方法,可以在指定函数执行一定次数后再触发回调。以下是两种常见的实现方式:

js实现after

基于计数器的方式

function after(times, callback) {
  let count = 0;
  return function() {
    count++;
    if (count >= times) {
      return callback.apply(this, arguments);
    }
  };
}

// 使用示例
const done = after(3, function() {
  console.log('执行完成');
});

done(); // 无输出
done(); // 无输出
done(); // 输出"执行完成"

使用闭包和剩余参数

function after(n, fn) {
  return function(...args) {
    if (--n < 1) {
      return fn.apply(this, args);
    }
  };
}

// 使用示例
const save = after(2, function(name) {
  console.log(`保存完成: ${name}`);
});

save('文件1'); // 无输出
save('文件2'); // 输出"保存完成: 文件2"

实现 DOM 的 after 方法

如果需要实现类似 jQuery 的 after 方法,用于在 DOM 元素后插入内容:

Element.prototype.after = function(...nodes) {
  const parent = this.parentNode;
  if (parent) {
    let nextSibling = this.nextSibling;
    nodes.forEach(node => {
      parent.insertBefore(
        node instanceof Node ? node : document.createTextNode(String(node)),
        nextSibling
      );
    });
  }
  return this;
};

// 使用示例
const div = document.createElement('div');
div.textContent = '原始元素';
document.body.appendChild(div);

div.after('插入的文本', document.createElement('span'));

注意事项

  • 函数式 after 适用于需要延迟执行回调的场景
  • DOM after 方法需考虑浏览器兼容性,现代浏览器已原生支持此方法
  • 使用原型扩展时需注意不要覆盖已有方法

标签: jsafter
分享给朋友:

相关文章

js实现

js实现

JavaScript 实现方法 JavaScript 是一种广泛使用的编程语言,适用于网页开发、服务器端编程以及移动应用开发。以下是几种常见的 JavaScript 实现方法: 网页交互功能 使用…

js jquery

js jquery

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

js类实现

js类实现

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

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现目录

js实现目录

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

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 const…