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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)