文档章节

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

招展君
 招展君
发布于 2015/12/16 14:10
字数 174
阅读 42
收藏 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)

前言 面向对象(OOP)作为经典的设计范式,对于我们来说可谓无人不知,还记得我们入行起始时那句经典的总结吗-万事万物皆对象。 是的,基于OOP思想封装、继承、多态的特点,我们会自然而然的遵...

潇湘待雨
2018/10/29
0
0
bearcat 0.3.5 发布

Bearcat是一个基于自描述javaScript object进行开发的应用层框架, Bearcat提供了一个轻量级的容器来编写简单,可维护的javaScripts. Bearcat 提供了一个基础的底层来管理应用逻辑对象,使得开...

fantasyni
2015/01/06
1K
3
JavaScript是怎样AOP实现?

AOP的概念,使用过Spring的人应该都不陌生了。Dojo中,也是支持AOP的。对于JavaScript的其他框架、库不知道有没有AOP的支持。而Aop又叫面向切面编程,用过spring的同学肯定对它非常熟悉,而在...

前端攻城老湿
2018/11/09
0
0
bearcat 0.4.1 发布,统一抽象的 model

bearcat 0.4.1 发布了,该版本使用 parseInt 处理 model 默认数值属性。 Bearcat是一个基于自描述javaScript object进行开发的应用层框架, Bearcat提供了一个轻量级的容器来编写简单,可维护...

oschina
2015/03/03
577
0
通过AOP解耦Javascript中的紧耦合代码

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

顽Shi
2014/10/16
0
1

没有更多内容

加载失败,请刷新页面

加载更多

test

//// main.c// Test//// Created by 吕颖 on 2019/1/16.// Copyright © 2019年 carmen. All rights reserved.//#include <stdio.h>#include <stdlib.h>#include <t......

carmen-ly
今天
1
0
Android webview热门组件agentweb:4.0.2无法自适应的问题

Android webview热门组件agentweb:4.0.2无法自适应的问题 //设置自适应屏幕,两者合用mAgentWeb.getAgentWebSettings().getWebSettings().setUseWideViewPort(true); //将图片调整到适合w...

Gemini-Lin
今天
5
0
如何维护一个自己的 golang doc 服务

本文内容是如何维护一个golang 在线的doc 服务。 1 什么是godoc ? godoc 是 golang 官方提供的文档生成工具, 2 为什么要有godoc ? 我们经常遇到一个问题,就是代码和文档不一致,线上代码版...

鼎铭
今天
5
0
js中的对象创建的模式以及继承模式

对象创建模式: 工厂模式 构造函数模式 原型模式 继承模式 原型式继承 寄生式继承 构造函数 原型式和构造函数的组合式(缺点:运行两次超类类函数,积累函数的属性被挂载在原型对象上和实例对...

莫西摩西
昨天
3
0
大数据教程(11.5)仓库工具hive的实现机制

上一篇文章介绍了hadoop联邦集群的搭建过程。至此,hadoop的整个知识系统就差不多结束了。本篇博客开始,博主将分享数据仓库hive工具的原理以及使用。 一、Hive基本概念 (1)什么是Hive Hive...

em_aaron
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部