我是靠谱客的博主 明理蚂蚁,最近开发中收集的这篇文章主要介绍016-Decorator(修饰器,是一个函数,用来修改类的行为),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/**
 * Decorator(修饰器,是一个函数,用来修改类的行为)
 * 扩展类的功能
 *
 * 第三方库修饰器的js库:core-decorators; npm install core-decorators
 *
 */

{ //基本用法 1
    /**
     *
     * @param target  修改的类的本身
     * @param name  修改类属性的名称
     * @param descriptor  该属性的描述对象
     * @returns {*}
     */
  let readonly=function(target,name,descriptor){
    descriptor.writable=false;  //限制不可写
    return descriptor
  };

  class Test{
    @readonly //调用修饰器
    time(){
      return '2017-03-11'
    }
  }

  let test=new Test();

  // 修改time()函数会报错
  // test.time=function(){
  //   console.log('reset time');
  // };

  console.log(test.time());
}


{ //基本用法 2
  let typename=function(target,name,descriptor){
    target.myname='hello';
  }

  @typename
  class Test{

  }

  console.log('类修饰符',Test.myname); //hello
  // 第三方库修饰器的js库:core-decorators; npm install core-decorators
}


/**
 * 前端日志系统 ********************************************
 */
{
  let log=(type)=>{
    return function(target,name,descriptor){
      let src_method=descriptor.value;
      descriptor.value=(...arg)=>{
        src_method.apply(target,arg);
        console.info(`log ${type}`);
      }
    }
  }

  class AD{
    @log('show')
    show(){
      console.info('ad is show')
    }
    @log('click')
    click(){
      console.info('ad is click');
    }
  }

  let ad=new AD();
  ad.show();
  ad.click();
}

最后

以上就是明理蚂蚁为你收集整理的016-Decorator(修饰器,是一个函数,用来修改类的行为)的全部内容,希望文章能够帮你解决016-Decorator(修饰器,是一个函数,用来修改类的行为)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部