AOP 动态添加函数
Posted tujw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AOP 动态添加函数相关的知识,希望对你有一定的参考价值。
Function.prototype.before = function(beforefn) { // 保存原函数的引用 var self = this; // 返回包含了原函数和新函数的代理函数 return function() { // 执行新函数,修正this beforefn.apply(this, arguments); // 执行原函数 return self.apply(this, arguments); }; }; Function.prototype.after = function (afterfn) { var self = this; return function () { // 先调用 调用的函数,在调用afterfn // 调用这个函数的也是一个函数 var ret = self.apply(this, arguments); afterfn.apply(this, arguments); return ret; }; }; var func = function () { console.log(2); }; // 每次使用之前都要这么写一遍 function init(fn) { fn = fn.before(function () { console.log(1); }) .after(function () { console.log(3); }); return fn; } func = init(func); func();
以上是关于AOP 动态添加函数的主要内容,如果未能解决你的问题,请参考以下文章