首页 > 解决方案 > JavaScript 装饰器的意义何在?

问题描述

我用谷歌搜索了 JavaScript 装饰器,但我不确定使用装饰器调用函数和正常调用函数之间的区别是什么。

function myFunction(text) {
  console.log(text)
}

myFunction()对比@myFunction对比@myFunction()

我有一种感觉,我在这里大错特错。有人可以解释吗?

标签: javascriptfunctionfunctional-programmingdecorator

解决方案


装饰器用于从字面上装饰一个功能。

假设你想输入你自己的装饰器,它可以用来查看一个函数需要运行多少时间。你可以写一个装饰器@time()来做这件事。完成后,您可以在要跟踪的每个函数之前使用此装饰器。

装饰器用作高阶函数,主要是为了让您的代码具有功能组合!

一个很好的例子是@Component()Angular 中的装饰器。虽然在你的类之前使用这个装饰器,Angular 知道它必须将它作为一个组件来处理,并在幕后用它做几个方法。


推荐阅读