修饰器(Decorator)
修饰器(Decorator)是一个函数, 用来修改类的行为。 ES2017 引入了这项功能, 目前 Babel 转码器己经支持。
使用:
<script>
@T
class User {
constructor(name, age = 20){
this.name = name;
this.age = age;
}
}
function T(target){ // target:被修饰的对象
console.log(target);
target.country = "中国"; // 通过修饰器添加的属性是静态属性
}
console.log(User.country);
</script>
运行报错:
原因是,在ES6中,并没有支持该用法,在ES2017中才有,所以我们不能直接运行了,需要进行编码后再运行。
转码的意思是:将ES6或ES2017转为ES5执行。类似这样:
//转码前
input .map(item =>item + 1);
//转码后
input.map(function (item) {
return item + 1;
})