为了账号安全,请及时绑定邮箱和手机立即绑定

es6 symbol的出现是针对什么场景?怎么回事哈啊?

es6 symbol的出现是针对什么场景?怎么回事哈啊?

慕神8447489 2019-08-17 10:56:34
假如我有个对象放在工具(util.js)里面letsymbol=Symbol('whatever');exportletobj={[symbol](){console.log('log');},say(){console.log('say');}}我想要在组件里面使用这个方法,比如使用say(),我可以直接importobj,然后obj.say()。如果我想要使用[symbol]的这个方法,岂不是还要将symbolexport,然后importsymbol和obj,再去执行obj[symbol]()。这样岂不是更复杂了?
查看完整描述

2 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

一个不重复的值node中有一个比较实际的场景,require('util').promisify.custom就是一个Symbol。用于设置自定义的promisify函数,不会担心这个属性被其他人误操作而覆盖。我们也可以通过这个key来取出对应的函数。
                            
查看完整回答
反对 回复 2019-08-17
?
DIEA

TA贡献1820条经验 获得超2个赞

Object.getOwnPropertySymbols()方法返回一个给定对象自身的所有Symbol属性的数组。
let_symbol=Object.getOwnPropertySymbols(obj);
obj[_symbol[0]]()
                            
查看完整回答
反对 回复 2019-08-17
  • 2 回答
  • 0 关注
  • 372 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信