`
墓里活人
  • 浏览: 22938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
  • 墓里活人: 回1楼: 具体的任务没有限定,根据你的需求来定。 比如我就 ...
    java线程池
  • ora92: 楼主,你的程序我试着运行了一下,能具体说一下它能完成什么任务吗 ...
    java线程池

javascript 动态织入 拦截(aop) 代码与动态继承

阅读更多

  
var person = {};      
obj.name = "xxx";      
obj.sex = "yyy";      
obj.myFunction = function(){ alter(obj.name);  }      
     
var ePer = {};      
ePer ['field'] = 'field';      
ePer.myFunction  = function(){ alter(ePer .'field')  };      
  
ePer.extendBy = function(parant){      
       for(var i in person ){      
         if(parant[i]=="undefine")continue;      
         extendPer[i] =  parant[i];      
      }      
}      
//进行继承 或重载    
ePer.extendBy(person);    
  
var person2 = function(){   
       
    this.field1 = "xxx";   
};      
person2.prototype.myFn = function(){   
    return this.field1;   
}   
  
//多继承    
ePer.extendBy(new person2());    
  
  
/****************************************************  
  动态  javascript aop 呵呵  
*****************************************************/  
//动态运行时的拦截代码织入 操作类  

var aopEmbed = function(){   
       
     /** 拦截前   
      *  exeAop 自定义拦截代码  
       *  aimObj 被拦截的类  
       *  aimMethod 所拦截的目标方法名  
       *  scope 拦截方法执行时 的运行作用域  
      **/  
     this.beforEmbed = function(exeAop,args1,aimObj,args2,aimMethod,scope){   
             
          this['BScope'] = aimObj[aimMethod];   
          aimObj[aimMethod] = function(){   
                 exeAop.call(scope,args1);   
                 this['BScope'].call(scope,args2);   
          }   
    }   
    //拦截后   
    this.afterEmbed = function(exeAop,args1,aimObj,args2,aimMethod,scope){   
             
          this['BScope'] = aimObj[aimMethod];   
          aimObj[aimMethod] = function(){   
                this['BScope'].call(scope,args2);   
                exeAop.call(scope,args1);   
          }   
    }   
  
}  


分享到:
评论

相关推荐

    yui3的AOP(面向切面编程)和OOP(面向对象编程)

    AOP允许我们将这些关注点与业务逻辑分离,形成独立的切面,然后在运行时自动将它们织入到目标代码中。AOP的核心概念有切点(Pointcut)、通知(Advice)、连接点(Join Point)和切面(Aspect)等。 在JavaScript中...

    MVC4 API Filter 验证 AOP 实例

    在MVC4中,API控制器被引入,专门用于构建RESTful服务,便于与客户端如移动应用或JavaScript库进行数据交互。 "API Filter"是ASP.NET MVC中的一个关键概念,它们类似于拦截器,可以在动作方法执行前后插入自定义...

    ssh继承(简单实现)

    5. **集成SSH框架的优势**:SSH框架集成后,可以实现业务逻辑与视图层的分离,提高代码的可重用性和可扩展性。同时,Spring负责管理和协调各个组件,Hibernate处理数据持久化,Struts2处理用户交互,它们的结合为...

    JavaScript的十五种设计模式

    JavaScript的十五种设计模式是前端开发中的重要概念,它们代表了一套解决常见编程问题和优化代码组织的方法。这些模式能够帮助开发者写出更高效、可维护的代码,尤其对于初学者和中级开发者来说,掌握这些模式至关...

    java web整合开发王者归来光盘代码-Struts2.x 概述、高级应用

    第17章可能涵盖了如动态方法调用、OGNL表达式、文件上传下载、国际化和本地化、Struts2与Ajax的集成等高级主题。这些特性使得Struts2能够应对复杂的Web应用场景。 **7. Hibernate集成** 在大型企业级应用中,通常会...

    hemaAim:元Javascript

    2. **原型和对象继承**:JavaScript的原型链机制允许我们动态地修改对象的属性和方法,甚至可以改变对象的继承关系,这在元编程中非常有用。 3. **闭包**:闭包提供了一种在函数内部访问外部变量和保留状态的机制,...

    struts2springibaticdwr所需的继承架包

    Struts2的核心特性包括拦截器、插件体系、动态方法调用等,这些都极大地提高了开发效率和代码的可扩展性。 Spring 框架是Java企业级应用的基石,它提供了一种依赖注入(Dependency Injection,DI)和面向切面编程...

    深入理解Java Proxy机制.doc

    - 标签中提到了JavaScript,虽然Java和JavaScript是两种不同的语言,但在JavaScript中也有类似的概念,比如JavaScript的`Proxy`对象,它也允许在访问对象属性时添加拦截逻辑,但这属于JavaScript的ES6特性,与Java...

    Struts2的总结和Strut2集成Spring

    拦截器的实现基于AOP(面向切面编程)的思想,通过定义拦截器栈,可以灵活地控制拦截器的执行顺序和范围。 #### 配置和使用拦截器 在struts.xml文件中,通过`<interceptor>`和`<interceptor-stack>`元素配置拦截器...

    java基础笔记+前端+SSM框架

    Java基础笔记是学习Java编程语言的关键,它涵盖了变量、数据类型、运算符、流程控制语句(如if、switch、for、while)、类与对象、封装、继承、多态等核心概念。理解这些基础知识,是成为一名合格的Java开发者的基础...

    java学习线路

    * JavaScript 知识:javascript 基本语法、javascript 基本对象特征、Json 语法、深刻理解 javascript 的动态特征 * Dom 和事件机制:DOM 操作、编程、常见浏览器事件机制、掌握用户交互技巧 四、XML 编程 * XML ...

    javaweb开发要学习的所有专业技术和框架总结:.docx

    - JavaScript:实现网页动态效果及与用户的交互。 3. **数据库技术** - SQL语言:增删改查操作。 - 数据库设计:范式理论、索引优化等。 - 常用数据库管理系统:MySQL、Oracle、SQL Server等。 4. **网络通信** ...

    arthas的源码,如果在github上无法下载的同学可通过我这里下载

    3. **动态脚本语言支持**:Arthas支持使用Groovy、JavaScript等动态语言执行命令,增强了其灵活性。 4. **JVM信息查看**:可以查看JVM的运行时信息,如类加载器、线程、内存、CPU使用情况等。 5. **表达式计算**:...

    当当网struts2

    - **Interceptor(拦截器)**:类似AOP(面向切面编程)的概念,用于在Action执行前后插入额外的逻辑,例如日志记录、权限验证等。 - **Result**:定义了Action执行后的结果页面或资源,可以是重定向、转发或者...

    Java工程师面试宝典

    - Spring AOP:切点、通知、织入,以及如何自定义拦截器。 - Spring Boot:快速开发工具,自动配置,起步依赖。 4. **Hibernate框架** - ORM(对象关系映射)概念:如何将数据库表映射为Java对象。 - Hibernate...

    Java语言+基于SSM高速公路收费系统(毕业设计、课程设计使用).zip

    9. **拦截器和过滤器**:在SpringMVC中,拦截器用于处理请求前后的逻辑,比如权限验证。过滤器则可以全局地处理请求和响应,如字符编码的转换。 10. **单元测试和集成测试**:使用JUnit或Mockito等工具进行代码测试...

    Java毕业设计——基于SSH的任务调度系统的设计与实现(论文+答辩PPT+源代码+数据库).zip

    首先,Struts2是ActionServlet的升级版,它继承了Struts1的优点,并引入了拦截器(Interceptor)机制,使得业务逻辑和表现层更易分离,同时增强了异常处理和国际化支持。在本项目中,Struts2负责处理HTTP请求,转发...

    java技术资源包,内容不多,但是相当实用,可做学习,也可做资料参考和查阅!

    学习Java,你需要理解其基本语法、类、对象、接口、继承和多态等核心概念。此外,异常处理、集合框架(如List、Set、Map)以及IO流也是Java编程的基础。 JSP(JavaServer Pages)是Java Web开发的一部分,它允许...

    websocketDemo

    WebSocket是一种在客户端与服务器之间建立长连接的协议,它允许双方进行全双工通信,即数据可以在任意方向上流动,而无需反复建立和关闭连接。在这个"websocketDemo"项目中,开发者利用了Netty框架以及WebSocket相关...

Global site tag (gtag.js) - Google Analytics