Symbol讲解

作者: zhang463291046 | 来源:发表于2020-09-14 17:56 被阅读0次

以下内容是引用或者借鉴别人的,自己只是做个笔记,方便学习。理解错误的地方,欢迎评论。如有侵权,私聊我删除,未经允许,不准作为商业用途

创建唯一的值,没有登记机制

  • Symbol函数的参数是对当前 Symbol 值的key(也叫描述description),相同参数的Symbol函数的返回值是不相等的
// 没有参数的情况
let s1 = Symbol();
let s2 = Symbol();

s1 === s2 // false

// 有参数的情况
let s1 = Symbol('foo');
let s2 = Symbol('foo');

s1 === s2 // false
  • ES2019 提供了一个实例属性description,直接返回 Symbol 的描述。
const sym = Symbol('foo');

sym.description // "foo"

Symbol.for()检查给定的key是否已经存在,存在会用这个值,不存在会新建一个值,有登记机制

let s1 = Symbol.for('foo');
let s2 = Symbol.for('foo');

s1 === s2 // true

Symbol.keyFor()方法返回一个已登记的 Symbol类型值的key

let s1 = Symbol.for("foo");
Symbol.keyFor(s1) // "foo"

let s2 = Symbol("foo");
Symbol.keyFor(s2) // undefined

静态属性

image.png

相关文章

网友评论

    本文标题:Symbol讲解

    本文链接:https://www.haomeiwen.com/subject/ecjzektx.html