JavaScript面向切面编程

JavaScript面向切面编程JS 也有切面编程 有时间学习一下 毕竟面向切面可以在一些通用处理场景 如日志打印等可以省很多代码 看个例子 通过原型链注入自定义函数 Function prototype before function beforeFn var self this 保存原函数引用 returnfuncti 返回包含了原函数和新函数的 代理 函数

JS也有切面编程,有时间学习一下。毕竟面向切面可以在一些通用处理场景,如日志打印等可以省很多代码。

看个例子:

//通过原型链注入自定义函数 Function.prototype.before = function (beforeFn) { var _self = this; // 保存原函数引用 return function () { // 返回包含了原函数和新函数的‘代理’函数 beforeFn.apply(this, arguments); // 执行新函数,修正this return _self.apply(this, arguments); // 执行原函数 } }; Function.prototype.after = function (afterFn) { var _self = this; return function () { var ret = _self.apply(this, arguments); afterFn.apply(this, arguments); return ret; } }; var obj = { method: function test() { alert("2") } }; obj.method = obj.method.before(function () { alert("1"); }).after(function () { alert("3") }); function startTest() { obj.method(); }

弹出的顺序就是:1 ->2 ->3

js面向切面编程的目的是不改变原有方法test()中的逻辑,去做一些额外的事。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222042.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:41
下一篇 2026年3月17日 下午4:42


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号