博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript AOP实现
阅读量:4326 次
发布时间:2019-06-06

本文共 2216 字,大约阅读时间需要 7 分钟。

参考:

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");        };

参考:

转载于:https://www.cnblogs.com/laixiangran/p/5039862.html

你可能感兴趣的文章
5个基于HTML5的加载动画推荐
查看>>
水平权限漏洞的修复方案
查看>>
静态链接与动态链接的区别
查看>>
Android 关于悬浮窗权限的问题
查看>>
如何使用mysql
查看>>
linux下wc命令详解
查看>>
敏捷开发中软件测试团队的职责和产出是什么?
查看>>
在mvc3中使用ffmpeg对上传视频进行截图和转换格式
查看>>
python的字符串内建函数
查看>>
Spring - DI
查看>>
微软自己的官网介绍 SSL 参数相关
查看>>
Composite UI Application Block (CAB) 概念和术语
查看>>
ajax跨域,携带cookie
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>
阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
查看>>
阶段3 2.Spring_02.程序间耦合_3 程序的耦合和解耦的思路分析1
查看>>
阶段3 2.Spring_02.程序间耦合_5 编写工厂类和配置文件
查看>>
阶段3 2.Spring_01.Spring框架简介_05.spring的优势
查看>>
阶段3 2.Spring_02.程序间耦合_7 分析工厂模式中的问题并改造
查看>>