javascript AOP实现
参考:http://www.cnblogs.com/rubylouvre/archive/2009/08/08/1541578.html
function Person(){ this.say = function(name,lang){ console.log("我的名字叫做"+name+",专注于"+lang+"..."); } } (function() { //AOP(面向切面编程)的javaScript实现 jsAOP = { /** * target 切入的目标对象 * method 切入的目标函数(相对于target) * advice 切入点执行函数 * **/ before:function(target,method,advice){ //备份原函数 var original = target[method]; target[method] = function(){ (advice)(); original.apply(target, arguments); }; return target }, after:function(target,method,advice){ var original = target[method]; target[method] = function(){ original.apply(target, arguments); (advice)(); }; return target }, around:function(target,method,advice){ var original = target[method]; target[method] = function(){ (advice)(); original.apply(target, arguments); (advice)(); }; return target } }; }()); window.onload = function(){ var p = new Person (); p = jsAOP.before(p,"say",function() { console.log("请你介绍一下自己!"); }); p = jsAOP.after(p,"say",function() { console.log("嗯,不错,明天来上班吧!"); }); p = jsAOP.around(p,"say",(function() { var index = -1; return function() { index++; if(index == 0) { console.log("介绍开始!"); }else{ console.log("介绍结束!"); index = -1; } }; }())); p.say("赖祥燃","javascript"); };
参考:http://www.cnblogs.com/rubylouvre/archive/2009/08/08/1541578.html
关注我,领取免费的前端学习资料,获取1个月免费VIP服务(包括简历优化、模拟面试、基础突击、大牛1v1辅导等)
转载请注明出处,谢谢!
分类:
Javascript
标签:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!