JavaScript中如何实现装饰器模式?

更新于
2026-09-29 14:23:01
1阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计123个文字,预计阅读时间需要1分钟。

JavaScript中如何实现装饰器模式?

使用AOP装饰函数实现装饰者模式 + Function.prototype.before=function(beforeFn) { var self=this; return function() { beforeFn.apply(this, arguments); return self.apply(this, arguments); }; }; Function.prototype.after=function(afterFn) { var self=this; return function() { var result=self.apply(this, arguments); afterFn.apply(this, arguments); return result; }; };

JavaScript中如何实现装饰器模式?

用AOP装饰函数实现装饰者模式

Function.prototype.before = function(beforeFn) { var self = this; return function() { beforeFn.apply(this, arguments); return self.apply(this, arguments); }; }; Function.prototype.after = function(afterFn) { var self = this; return function() { var ret = self.apply(this, arguments); afterFn.apply(this, arguments); return ret; }; }; var func = function(a) { console.log("2"); return a; }; var func1 = function() { console.log("1"); }; var func3 = function() { console.log("3"); }; var r = func.before(func1).after(func3)(99); console.info(r);

本文共计123个文字,预计阅读时间需要1分钟。

JavaScript中如何实现装饰器模式?

使用AOP装饰函数实现装饰者模式 + Function.prototype.before=function(beforeFn) { var self=this; return function() { beforeFn.apply(this, arguments); return self.apply(this, arguments); }; }; Function.prototype.after=function(afterFn) { var self=this; return function() { var result=self.apply(this, arguments); afterFn.apply(this, arguments); return result; }; };

JavaScript中如何实现装饰器模式?

用AOP装饰函数实现装饰者模式

Function.prototype.before = function(beforeFn) { var self = this; return function() { beforeFn.apply(this, arguments); return self.apply(this, arguments); }; }; Function.prototype.after = function(afterFn) { var self = this; return function() { var ret = self.apply(this, arguments); afterFn.apply(this, arguments); return ret; }; }; var func = function(a) { console.log("2"); return a; }; var func1 = function() { console.log("1"); }; var func3 = function() { console.log("3"); }; var r = func.before(func1).after(func3)(99); console.info(r);