首页 > 其他分享 >Symbol.for()

Symbol.for()

时间:2023-11-10 10:33:05浏览次数:35  
标签:const Symbol module2 js mySymbol keyFor

当我们在不同的模块或文件中需要共享一个特定的Symbol时,可以使用Symbol.for()方法来实现。

假设我们有两个模块,分别是module1.js和module2.js。我们希望在这两个模块中使用相同的Symbol来表示一个特定的概念,比如"mySymbol"。

在module1.js中,我们可以这样创建和获取Symbol:

javascript 插入代码复制代码 // module1.js const mySymbol = Symbol.for('mySymbol'); console.log(mySymbol); // 输出: Symbol(mySymbol)

然后,在module2.js中,我们可以通过相同的参数来获取相同的Symbol:

javascript 插入代码复制代码 // module2.js const mySymbol = Symbol.for('mySymbol'); console.log(mySymbol); // 输出: Symbol(mySymbol)

通过使用Symbol.for()方法,我们可以确保在不同的模块中获取到的Symbol是相同的,从而实现了在不同上下文中共享和识别该Symbol的目的。

要获取Symbol的描述(比如"mySymbol"),可以使用Symbol.keyFor()方法。这个方法接受一个Symbol作为参数,并返回与之关联的键(即描述)。

在我们的例子中,我们可以在module2.js中使用Symbol.keyFor()来获取描述:

javascript 插入代码复制代码 // module2.js const mySymbol = Symbol.for('mySymbol'); const symbolDescription = Symbol.keyFor(mySymbol); console.log(symbolDescription); // 输出: mySymbol

通过调用Symbol.keyFor(mySymbol),我们可以获取到之前使用Symbol.for()方法时传入的描述"mySymbol"。

需要注意的是,Symbol.keyFor()方法只能用于全局注册表中的Symbol,如果传入的Symbol不是通过Symbol.for()方法创建的,它将返回undefined。

标签:const,Symbol,module2,js,mySymbol,keyFor
From: https://www.cnblogs.com/ht955/p/17823532.html

相关文章

  • 关于Es6的Symbol和访问器
    Symbol和访问器主要是来限制实例成员的如果一个成员暴露出去只让读不让改,我们就可以在类中使用访问器classPerson{getname(){return"HuangBingQuan"}}如果一个成员不让暴露出去(不让外界访问)那就使用Symbol作为属性值functionPerson(){constname=Symbol();retu......
  • How to tell whether a file is a symbolic link in shell script All In One
    HowtotellwhetherafileisasoftsymboliclinkinshellscriptAllInOneshell脚本中如何判断一个文件是否是软链接/软符号链接error软链接自动指向原文件bug❌#软链接$test./test.sh-ef./test-soft-link.sh$echo$?0#硬链接❌$test./test.......
  • Symbol
    概述ES5的对象属性名都是字符串,这容易造成属性名的冲突。比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin模式),新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的就好了,这样就从根本上防止属性名的冲突。这就是ES6引......
  • 【HAL 库复盘】自己手动创建工程模版Undefined symbol HAL_NVIC_SetPriority 问题解决
    1问题说明学习自己手动搭建一个STM32HAL库工程模板文件的时候,我发现了有6个错误,6个错误的类型是一样的,其中有3个通过添加hal_rcc.h和hal_gpio.c文件得以解决。所以另外3个我也想到了时缺少了对应的.c文件导致的错误。但是在STM32F1xx_HAL_Driver文件夹中,我没有找到类似如有“rcc......
  • 前端打怪之旅=>Es6入门(运算符、Symbol)
    运算符...扩展运算符能将数组转换为逗号分隔的参数序列声明一个数组consttfboys=['易烊千玺','王源','王俊凯'];//声明一个函数functionaction(){console.log(arguments)}action(tfboys) 是一个数组元素,arguments里......
  • To install it, you can run: npm install --save svg-baker-runtime/browser-symbol
    运行vue项目npmrundev命令报错报错信息:错误提示:Toinstallit,youcanrun:npminstall--savesvg-baker-runtime/browser-symbol解决:npminstall--saveregenerator-runtimesvg-baker-runtimevue-style-loader......
  • IDEA @Slf4j cannot find symbol 无法解析问题处理
    IDEA@Slf4jcannotfindsymbol无法解析问题处理问题描述:安装新版本IDEA2022后,项目出现如下问题,网上给的大多都是设置File|Settings|Build,Execution,Deployment|Compiler|AnnotationProcessors和File|Settings|Build,Execution,Deployment|......
  • [881] Import symbology to a feature layer
    Ref:ImportsymbologytoafeaturelayerTheimplementationmethodisdifferentfromArcGIS.Themaindifferenceisthattoolsareembeddedinthetopmenu.Herearethedetailedstepstoimplementthisrequest.......
  • IDEA cant resolve symbol String
    问题:在做新项目时报IDEAcantresolvesymbolString(IDEA不能识别String类型)      一脸懵,不光这个这样,其他的第三方的包也没法导进来猜测:刚开始以为是maven依赖没用导进来,后来发现String类竟然也不行,     于是猜测是JDK的问题,重新设置了一下JDK,发现也不......
  • Paper Reading: Multitree Genetic Programming With New Operators for Transfer Lea
    目录研究动机文章贡献本文方法从源域中提取知识基于MTGP的迁移学习转换域的特征、实例权值数据插值MTGP适应度函数遗传算子实验结果数据集实验设置同构情况下的SR异构情况下的SR存在缺失值的真实数据集的SR训练时间学习到的转换表达式遗传算子比较消融实验优点和创新点Pape......