前面对象AOP

function s({before,myFunc,after}) {

    function proxy(method) {

        return function () {

            try{

                    before && before.apply(this,arguments);

                    method.apply(this,arguments);

                    after && after.apply(this,arguments);

            }catch (e) {

                    console.error(e);

            }finally {

            }

        }

    }

    for(var kin myFunc.prototype){

        myFunc.prototype[k]=proxy(myFunc.prototype[k])

    }

}

function MyFunc(name) {

    this.name=name;

}

MyFunc.prototype.t =function () {

    console.log(this,arguments);

};

s({

    before:function () {

        console.log("before");

    },

    myFunc:MyFunc,

    after:function () {

        console.log("after");

    }

});

var f =new MyFunc("asfsfsdf");

var f1 =new MyFunc("2423423423")

f.t(1,2,3,4,5);

f1.t(8,9);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 6,167评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,385评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,394评论 1 10
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,699评论 0 13
  • 八期八篇 今天好热啊,高温红色预警。 上午和小笼包去打疫苗,去的路上,一路哀嚎,好像我要把他拐卖了一样。。回来的路...
    SnowKnow阅读 1,007评论 2 4