ES6中Decorator修饰器的用法

2019-06-22  本文已影响0人  易路先登

Decorator是一个函数,用来修改类的行为,即可修饰类的静态属性,也可修饰类的原型上的函数。

function addName(name){
    return function(target) {
      target.name = name;
    }
};
@addName('zhangsan')
class Person{}
console.log(Person.name);//zhangsan
function readonly(target, name, descriptor){
  // descriptor对象原来的值如下
  // {
  //   value: specifiedFunction,
  //   enumerable: false,
  //   configurable: true,
  //   writable: true
  // };
  descriptor.writable = false;
  return descriptor;
}
class Person {
  @readonly
  name() { return '被修饰的函数' }
}
//如此Person原型上的name函数就不可被覆盖
let per = new Person();
per.name = function(){};//这步相当于覆盖原型方法,因为修饰了不可被覆盖,所以会报错

ES6总篇--目录

上一篇 下一篇

猜你喜欢

热点阅读