js实现after
实现 after 方法
在 JavaScript 中,可以通过扩展 Function.prototype 来实现类似 after 的功能,即在函数执行后执行另一个函数。
Function.prototype.after = function(fn) {
const self = this;
return function(...args) {
const result = self.apply(this, args);
fn.apply(this, args);
return result;
};
};
使用示例
定义一个函数 sayHello,并在其执行后调用另一个函数 logDone。
function sayHello(name) {
console.log(`Hello, ${name}!`);
return name;
}
function logDone() {
console.log('Function execution completed.');
}
const sayHelloAndLog = sayHello.after(logDone);
sayHelloAndLog('Alice');
输出结果
执行上述代码后,控制台将输出:
Hello, Alice!
Function execution completed.
注意事项
after方法会返回一个新的函数,该函数会先执行原函数,再执行传入的函数。- 传入的函数
fn不会影响原函数的返回值。 - 如果需要在
fn中访问原函数的返回值,可以修改after方法的实现。







