文档章节

深入理解js--面向切面编程 AOP

招展君
 招展君
发布于 2015/12/16 14:10
字数 174
阅读 32
收藏 0

js高级--面向切面编程

function demo(){
    alert('2');
    return 'me test';
}

Function.prototype.before= function (fn) {
    var __self = this;
    return function () {
        //这里面的this指向已经发生了变化,谁调用 就指向谁
        if(fn.apply(this,arguments)==false){
            return false;
        }
       return __self.apply(__self,arguments);
    }
}
Function.prototype.after = function (fn) {
    var __self = this;
    return function () {
        var result = __self.apply(__self,arguments);
        if(result ==false){
            return false;
        }
        fn.apply(this,arguments);
        return result;
    }
}

//默认函数被执行两遍,现在思路是要以默认函数为中转
//让默认函数先不执行,
// before回调和before一起送到after里去
//after回调和after也要送到before里去

//将AOP函数改成可以链式触发的函数
var s = demo.before(function () {
    alert('1');
}).after(function () {
    alert('3');
})()

console.log(s);

© 著作权归作者所有

共有 人打赏支持
招展君
粉丝 0
博文 8
码字总数 2941
作品 0
闸北
程序员
通过AOP解耦Javascript中的紧耦合代码

AOP大家都知道,Javascript对于AOP的使用也有一些很好的地方.这几天正好在改别人代码他在javascript用了AOP进行编程,正好仔细说说怎么玩的这个. AOP 单独AOP的概念最早接触是在Java中,面向切片...

顽Shi
2014/10/16
0
1
dojo1.7功能介绍:面向方面编程(AOP)功能与原理

日前发布的dojo 1.7版本对其源码进行了很大的变更。在迈向2.0版本之际,dojo提供了许多新的功能,也对许多已有的功能进行了修改,具体来说新版本更好地支持AMD规范、提供了新的事件处理系统(...

bigYuan
2012/04/13
0
0
用JAVA开发网站,需要学哪些呢?

首先要学JavaSE,在JavaSE完成之后掌握一种编程工具,比如说Eclipse。 数据库,可以选择使用Oracle或者MySQL开始。JDBC,用Java连接数据库。 可以选择在这个地方切入Hibernate,也可以选择在...

小梅菜鸟
2012/04/20
0
0
装饰者模式--AOP装饰

AOP在职责模式中也有使用,甚至都一毛一样,初学设计模式过程中,AOP是性价比最高的,在实际开发中的作用也很重要,学习AOP你可以在不改动原来大量代码功能模块的前提下对功能进行改造,添加...

Rico_wang
2017/12/11
0
0
JavaScript 语言基础知识点总结(思维导图)

(1)javascript 数组 (2)函数基础 (3)运算符 (4)流程语句 (5)正则表达式 (6)字符串函数 (7)数据类型 (8)变量 (9)window 对象 (10)DOM基本操作 (11)一图知晓整个Javascr...

大数据之路
2012/11/26
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Go语言_通神之路(2)

1、包 每个Go程序都是由包构成,从main包开始运行,就是我上一篇讲到的,都是从main函数开始执行,但是必须在main包下面! package mainimport ( "fmt" "math/rand")func ...

木九天
昨天
2
0
51.php-fpm的pool 慢日志 open_basedir 进程管理

12.21 php-fpm的pool 12.22 php-fpm慢执行日志(测试时报错) 12.23 open_basedir 12.24 php-fpm进程管理 12.21 php-fpm的pool: php-fpm里的pool也叫池子,咱们之前加入过www的配置,这个w...

王鑫linux
昨天
0
0
java内存模型概述

1、Java虚拟机运行时数据分区图 程序计数器:线程私有,是一块较小的内存空间,它是当前线程所执行的字节码文件的行号指示器 java虚拟机栈:线程私有,其生命周期与线程相同,这也就是我们平...

京一
昨天
0
0
shell学习之test语法

因为if-then语句不能测试退出状态码之外的条件,所以提供了test, 如果test命令中列出的条件成立,test命令就会退出并返回退出状态码0;如果条件不成立,test命令就会退出并返回非零的退出状态...

woshixin
昨天
0
0
openJDK之如何下载各个版本的openJDK源码

如果我们需要阅读openJDK的源码,那么需要下载,那么该去哪下载呢? 现在JDK已经发展到版本10了,11已经处于计划中,如果需要特定版本的openJDK,它们的下载链接在哪呢? 1.openJDK的项目 链接...

汉斯-冯-拉特
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部