JavaScript 的Decorator 装饰器介绍
Angular大量使用了JS的装饰器特性,先看 ruanyifeng的介绍
使用babel转换
步骤 :
- npm install -g babel-cli
- npm init; npm install --save-dev babel-plugin-transform-decorators-legacy
- babel --plugins transform-decorators-legacy 1.js > 1.es5.js
例1
@eat class Person { constructor() {} } function eat(target, key, descriptor) { console.log('吃饭'); console.log(target); console.log(key); console.log(descriptor); target.prototype.act = '我要吃饭'; } const jack = new Person(); console.log(jack.act);
转换后
var _class; let Person = eat(_class = class Person { constructor() {} }) || _class; function eat(target, key, descriptor) { console.log('吃饭'); console.log(target); console.log(key); console.log(descriptor); target.prototype.act = '我要吃饭'; } const jack = new Person(); console.log(jack.act); // 吃饭 // [Function: Person] // undefined // undefined // 我要吃饭
例2
function mixins(...list) { return function (target) { Object.assign(target.prototype, ...list); }; } const Foo = { foo() { console.log('foo') } }; @mixins(Foo) class MyClass {} let obj = new MyClass(); obj.foo() // "foo"
babel 后
var _dec, _class; function mixins(...list) { return function (target) { Object.assign(target.prototype, ...list); }; } const Foo = { foo() { console.log('foo'); } }; let MyClass = (_dec = mixins(Foo), _dec(_class = class MyClass {}) || _class); let obj = new MyClass(); obj.foo(); // "foo"
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
应该是最好的eggnog-mapper功能注释教程
eggnog-mapper实现功能注释 eggNOG-Mapper介绍 通常功能注释的思路都是基于序列相似性找直系同源基因,常见的方法就是BLAST+BLAST2GO, 或者是InterProScan。eggNOG-mapper的作者认为这种方法不够可靠,毕竟你有可能找到的的是旁系同源基因。近期对多个工具的整体评估发现eggNOG(evolutionary genealogy of genes: Non-supervised Orthologous Groups)在区分旁系同源基因和直系同源基因上表现不错,因此基于eggNOG数据库开发了eggNOG-mapper工具,用于对新序列进行功能注释。 eggNOG-mapper的算法实现如下: 第一步:序列比对。首先,每条蛋白序列用HMMER3在整理的eggNOG数据库中搜索。由于每个HMM匹配都和一个功能注释的eggNOG OG对应,这一步就提供了初步的注释信息。之后,每条蛋白序列用phmmer在最佳匹配的HMM对应的一组eggNOG蛋白中进一步搜索。最后,每条序列的最佳匹配结果以 seed ortholog 形式存放,用于获取其他直系同...
- 下一篇
面经and重点汇总
1、去BAT,你应该要看一看的面试经验总结(职位:c++ Linux服务器开发) 2、如何学好 Linux、C++,并搞定 BAT 面试 作者/分享人:天千 3、后台开发,从基础到高级,有什么好的书籍推荐? 4、写给那些傻傻想做服务器开发的朋友 5、忘了是从哪里弄来的面筋了,记录一下 6、面经 7、重点
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度