装饰器是什么?

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

这个概念类似于你以前听说过的功能成分和高阶成分。

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

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

如何使用 Javascript 装饰器

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

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

您可以在相同的代码之前放置许多装饰符,然后解释器按顺序执行

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

-@log 可以记录所有访问类

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

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

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

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

你为什么要用装饰工?

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

不同类型的装潢师

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

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

类属性装饰器

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

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

- 目标 - 修改类

- 名称类别成员的姓名

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

@readonly 是一个典型的例子:

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

可写 = 假;

反转描述符

12341234

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

最新文章

  1. Android开发之重力传感器
  2. 互联网中一些常用指标(PV、UV、蹦失率、转换率、退出率)
  3. Atitit.软件中见算法 程序设计五大种类算法
  4. Mac Pro 入门、遇到的问题、个性化设置 汇总
  5. Easyui获取数据库date数据的显示
  6. ORACLE REFERENCES FRO TEST
  7. php魔术方法——属性重载方法
  8. //Build/ 2014 开发者大会Azure重点整理
  9. scanf和gets的差别
  10. ucos-ii的任务调度机制
  11. @Resource 与 @Service注解的区别
  12. linux php7.2安装扩展memcached
  13. 《C#并发编程经典实例》学习笔记—2.1 暂停一段时间
  14. TensorFlow从入门到理解(三):你的第一个卷积神经网络(CNN)
  15. Service Fabric本地开发部署修改数据目录
  16. lnmp之mysql5.5.17安装
  17. gdb中run出现的Missing separate debuginfos, use: debuginfo-install XXX
  18. 3.2 Spark内置RPC框架
  19. python的30个编程技巧
  20. Python爬虫教程-18-页面解析和数据提取

热门文章

  1. 用于KV集群的一致性哈希Consistent Hashing机制
  2. Ingress-nginx 部署使用
  3. git clone速度太慢的解决办法(亲测还有效)
  4. 360极速浏览器安装vue-devtools插件
  5. Node.js+Express框架+Mongo学习(一)第一个node.js实例
  6. 【翻译】Flink Table Api & SQL —Streaming 概念 ——动态表
  7. [LeetCode] 199. Binary Tree Right Side View 二叉树的右侧视图
  8. [LeetCode] 689. Maximum Sum of 3 Non-Overlapping Subarrays 三个非重叠子数组的最大和
  9. java8(2)--- Stream API
  10. 手贱重置了mysql密码,导致登陆不进去的解决办法