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

请教各位一个问题,求解答:es6 symbol的出现是针对什么场景?大佬们有什么好的建议?

请教各位一个问题,求解答:es6 symbol的出现是针对什么场景?大佬们有什么好的建议?

繁花不似锦 2019-06-09 11:28:18
假如我有个对象放在工具(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 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

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

TA贡献1777条经验 获得超10个赞

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

添加回答

举报

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