javascript - JavaScript 装饰器的意义何在?
问题描述
我用谷歌搜索了 JavaScript 装饰器,但我不确定使用装饰器调用函数和正常调用函数之间的区别是什么。
function myFunction(text) {
console.log(text)
}
myFunction()
对比@myFunction
对比@myFunction()
我有一种感觉,我在这里大错特错。有人可以解释吗?
解决方案
装饰器用于从字面上装饰一个功能。
假设你想输入你自己的装饰器,它可以用来查看一个函数需要运行多少时间。你可以写一个装饰器@time()
来做这件事。完成后,您可以在要跟踪的每个函数之前使用此装饰器。
装饰器用作高阶函数,主要是为了让您的代码具有功能组合!
一个很好的例子是@Component()
Angular 中的装饰器。虽然在你的类之前使用这个装饰器,Angular 知道它必须将它作为一个组件来处理,并在幕后用它做几个方法。