当前位置:首页 > 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
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现 功能

js实现 功能

在 JavaScript 中实现功能通常涉及多个关键步骤,具体取决于功能需求。以下是常见功能的实现方法和示例: 基本功能实现 使用函数封装逻辑是最直接的方式。例如,实现一个计算两数之和的函数: f…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现定位

js实现定位

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

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…