
获得徽章 0
通过 Symbol.for() 创建的 symbol 值是全局变量吗
我的测试结果是这样的:
通过 Symbol.for() 可以跨作用域获取“全局 symbol 注册表”中的 symbol 值,
但是无法通过 symbol 值的变量名跨作用域获取“全局 symbol 注册表”中的 symbol 值。
测试代码如图所示
mdn的解释是:
全局共享的 Symbol
上面使用Symbol() 函数的语法,不会在你的整个代码库中创建一个可用的全局的symbol类型。 要创建跨文件可用的symbol,甚至跨域(每个都有它自己的全局作用域) , 使用 Symbol.for() 方法和 Symbol.keyFor() 方法从全局的symbol注册表设置和取得symbol。
我的测试结果是这样的:
通过 Symbol.for() 可以跨作用域获取“全局 symbol 注册表”中的 symbol 值,
但是无法通过 symbol 值的变量名跨作用域获取“全局 symbol 注册表”中的 symbol 值。
测试代码如图所示
mdn的解释是:
全局共享的 Symbol
上面使用Symbol() 函数的语法,不会在你的整个代码库中创建一个可用的全局的symbol类型。 要创建跨文件可用的symbol,甚至跨域(每个都有它自己的全局作用域) , 使用 Symbol.for() 方法和 Symbol.keyFor() 方法从全局的symbol注册表设置和取得symbol。
展开
3
点赞