如何修饰定义为对象中值的类?
以Addy Osmani [1]最出色的例子为例,
function superhero(target) {
target.isSuperhero = true;
target.power = 'flight';
}
@superhero
class MySuperHero() {}
console.log(MySuperHero.isSuperHero); // true
现在,假设我们将超级英雄类创建为对象中的值,如下所示:
let heros = {
myHero : class MySuperHero() {}
}
以上课程的装饰方式如何?
我的第一个想法是将装饰器放到键值对的前面,但是我什至没有尝试,因为那没有道理。 @superhero
将被理解为对象中的第一个键:
let heros = {
@superhero
myHero : class MySuperHero() {}
}
我的第二个想法是像这样将其封闭在一个块中,但这也会引发错误:
let heros = {
myHero : {
@superhero
class MySuperHero() {}
}
}
也许是IIFE?我担心自己会踩在薄冰上。 Tyvm,Keith:^)