复制代码 代码如下: function actsAsDecorator(object) { object.setupDecoratorFor = function(method) { if (! ('original_' + method in object) ) { object['original_' + method] = object[method]; object['before_' + method] = [ ]; object['after_' + method] = [ ]; object[method] = function() { var i; var b = this['before_' + method]; var a = this['after_' + method]; var rv; for (i = 0; i < b.length; i++) { b[i].call(this, arguments); } rv = this['original_' + method].apply(this, arguments); for (i = 0; i < a.length; i++) { a[i].call(this, arguments); } return rv; } } }; object.before = function(method, f) { object.setupDecoratorFor(method); object['before_' + method].unshift(f); }; object.after = function(method, f) { object.setupDecoratorFor(method); object['after_' + method].push(f); }; } /** Invoking */ function Test(){ this.say1 = function(s){ alert(s); } this.say2 = function(s){ alert(s); } } var t = new Test(); actsAsDecorator(t); t.before("say1",beforeHander); t.after("say2",afterHander); test();
推荐阅读
基于jquery的一个OutlookBar类,动态创建导航条
图示效果:演示地址:http://demo.jb51.net/js/menu_jquery/index.html下载地址:http://xiazai.jb51.net/201011/yuanma/menu_jquery.rarOutlookBar.js 复制代码 代码如下: function OutlookBar(targetName)//targ>>>详细阅读
本文标题:javascript AOP 实现ajax回调函数使用比较方便
地址:http://www.17bianji.com/kaifa2/JS/25388.html
1/2 1