我试图了解装饰器如何在javascript中工作。我浏览了很多有关它的文章,但是没有一篇文章能很好地解释这个概念。
我从我读过的一篇文章中尝试了装饰器的基本示例。这是codepen link。 我定义了一个称为超级英雄的装饰器函数。我正在用它装饰班级“ MySuperHero”。据我所知,装饰器应将属性添加到类中。但是当我执行console.log时,它显示为未定义。
[_sponsoredCollectionView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
[self.sponsoredCollectionView performBatchUpdates:^{
_sponsoredCollectionViewHeightConstraint.constant = _sponsoredCollectionView.collectionViewLayout.collectionViewContentSize.height + 5;//_sponsoredCollectionView.contentSize.height + 5;
} completion:nil];
});
答案 0 :(得分:1)
您应使用babel --optional es7.decorators
(baby CLI)启用装饰器。
由于仍然是一项提案,因此可以找到更多信息here。
希望这会有所帮助!
答案 1 :(得分:0)
JavaScript本身不支持@
装饰器,您必须使用babel
,请遵循链接中提到的安装步骤:https://babeljs.io/docs/en/babel-plugin-proposal-decorators