介绍
在 ES10 中,Symbol.prototype.description 是新增的一个实例属性,它用于获取 Symbol 对象所表示的字符串描述。这个属性是一个只读的字符串类型。
在 ES6 中,我们可以通过 Symbol 的静态方法 description 创建一个带有描述信息的 Symbol 对象,但是无法直接获取这个描述信息。在 ES10 中引入 Symbol.prototype.description 属性,则可以方便地获取到描述信息。
语法
Symbol.prototype.description
使用指南
Symbol.prototype.description 属性的使用指南如下:
获取描述信息
const symbol = Symbol('string description'); console.log(symbol.description); // "string description"
元属性
元属性指 Symbol 对象的内部属性,可以用于自定义和控制 Symbol 行为的属性。在 ES10 中,Symbol.prototype.description 是元属性之一,通常与 for...of 迭代器一起使用。
-- -------------------- ---- ------- -- ------ ------ ------ ----- -------- - - ------------------- - --- ---- - -- ----- -------- - - ------ - -- ----- --- -- - ------- ------ - ------ ------------ ---- ----- ----- -- - ---- -- ----- --- -- - ------- ------ - ------ ------------ ---- ----- ----- -- - ---- - ------ - ----- ---- -- - - -- ------ --------- - -- -- ------- --- ---- ---- -- --------- - ------------------------------ -展开代码
Symbol.keyFor() 方法
在 ES6 中,我们可以使用 Symbol.keyFor() 方法获取一个全局 Symbol 对象的字符串键名。在 ES10 中,如果该全局 Symbol 对象有描述信息,则 Symbol.keyFor() 方法返回 null,需要使用 Symbol.prototype.description 属性获取描述信息。
const globalSymbol = Symbol.for('test'); console.log(Symbol.keyFor(globalSymbol)); // "test" const globalSymbolWithDescription = Symbol.for('test_with_description'); console.log(Symbol.keyFor(globalSymbolWithDescription)); // null console.log(globalSymbolWithDescription.description); // "test with description"
总结
ES10 中新增的 Symbol.prototype.description 属性方便了我们获取 Symbol 对象的描述信息,同时成为了元属性之一,与其他元属性一起扩展、自定义以及控制 Symbol 的行为。
示例代码:
-- -------------------- ---- ------- -- ------ ----- ------ - -------------- -------------- -------------------------------- -- ------- ------------ -- --- -- ------ ------ ------ ----- -------- - - ------------------- - --- ---- - -- ----- -------- - - ------ - -- ----- --- -- - ------- ------ - ------ ------------ ---- ----- ----- -- - ---- -- ----- --- -- - ------- ------ - ------ ------------ ---- ----- ----- -- - ---- - ------ - ----- ---- -- - - -- ------ --------- - -- -- ------- --- ---- ---- -- --------- - ------------------------------ - -- --------------- -- ----- ------------ - ------------------- ----------------------------------------- -- ------ ----- --------------------------- - ------------------------------------ -------------------------------------------------------- -- ---- ----------------------------------------------------- -- ----- ---- ------------展开代码
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6465d9d7968c7c53b0683dca