js 实现after
在 JavaScript 中,可以通过扩展 Function.prototype 来实现一个 after 方法,该方法允许在原始函数执行后再执行另一个函数。以下是实现方法:

实现 after 方法
Function.prototype.after = function(fn) {
const originalFn = this;
return function(...args) {
const result = originalFn.apply(this, args);
fn.apply(this, args);
return result;
};
};
使用示例
function greet(name) {
console.log(`Hello, ${name}!`);
return name;
}
function log(name) {
console.log(`Logged: ${name}`);
}
const greetAndLog = greet.after(log);
greetAndLog("Alice");
输出结果
Hello, Alice!
Logged: Alice
功能说明
after方法将原始函数和后续函数包装成一个新函数。- 新函数会先执行原始函数,再执行后续函数。
- 原始函数的返回值会被保留并返回。
注意事项
- 如果原始函数和后续函数都需要修改
this上下文,确保通过apply或call正确传递。 - 如果不需要返回值,可以省略
return result。
这种方法常用于日志记录、性能监控或其他需要在函数执行后触发的操作。






