JavaScript Decorators: What They Are and When to Use Them — SitePoint