JAVASCRIPT中装饰器是什么(装修)

装饰器是什么?数组

解码器是将另外一段代码包装在一个代码中的简单方法。浏览器

这个概念相似于你之前据说过的功能成分和高阶成分。函数

这在许多状况下都被使用过,也就是说,成都装修公司简单地将一个函数包装到另外一个函数中:插件

前面的示例生成包装的新函数,它执行与 DoSomething 相同的操做,但它们的不一样之处在于在包装函数以前和以后输出一些语句。ip

如何使用 Javascript 装饰器get

Javascript 中的装饰器使用特殊的语法,使用 @做为标识符,并将其放在修饰代码以前。table

注:装潢师仍在拟议阶段,这意味着仍有改变的余地。语法

您能够在相同的代码以前放置许多装饰符,而后解释器按顺序执行程序

在上面的示例中,定义了一个类,使用三个装饰器:两个用于类自己,一个用于类的属性:方法

-@log 能够记录全部访问类

-@immutable 使类不可变 - 也许新实例调用 Object. 冻结

-@Time 记录从执行到输出惟一标记的方法

如今,虽然浏览器或 NODE 还不受支持。可是,若是您使用 Babel,您可使用转换 - 装饰器 - 遗留插件 - 使用装饰器。

由于 Babel 5 支持处理装饰器,因此在插件中使用 Legacy,但它可能与最终标准不一样,所以使用了遗留一词。

你为何要用装饰工?

函数组合在 Javascript 中已经成为可能,可是在另外一个代码(如类或类属性)中使用是至关困难或不可能的。

不一样类型的装潢师

如今,装饰器只支持类和类属性,包括属性、方法、获取函数和设置函数

装饰器将只在程序第一次运行时执行一次,而且修饰后的代码将被返回的值替换

类属性装饰器

属性装饰器应用于类的单个成员 - 不管是属性、方法、获取函数仍是集合函数。

装饰器函数调用三个参数:

- 目标 - 修改类

- 名称类别成员的姓名

- 描述符 - 成员描述符。Object 将此参数传递给 Object.fineProperty

@readonly 是一个典型的例子:

函数只读(target,name,descriptor){

可写 = 假;

反转描述符

12341234

前面的示例将成员描述符中的可写设置为 false。

相关文章
相关标签/搜索