栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

@@(“ at at”)在ES6 JavaScript中是什么意思?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

@@(“ at at”)在ES6 JavaScript中是什么意思?

@@
描述所谓的众所周知的符号。(请注意,它实际上不是JS中有效的语法。)根据ES6 / ES2015 1 规范:

众所周知的符号是内置符号值,此规范的算法明确引用了这些值。它们通常用作属性的键,其值用作规范算法的扩展点。除非另有说明,否则众所周知的符号值由所有代码领域(8.2)共享。

代码领域指的是Javascript环境的不同实例。例如,根文档的Code Realm与运行在.NET中的Javascript的Code
Realm不同

<iframe>

一个对象来自哪个代码领域的问题的一个例子是,当试图用来

instanceof
确定一个对象是否是一个数组时(提示:如果它来自另一个框架,它将无法工作)。为了避免这些问题出现在符号中,它们是共享的,因此
@@toString
无论对象来自何处,对(say)的引用都将起作用。

其中一些直接通过

Symbol
构造函数公开,例如,
@@toPrimitive
公开为
Symbol.toPrimitive
。在尝试将对象转换为原始值时,可以使用该值覆盖产生的值,例如:

let a = { [Symbol.toPrimitive]: () => 1 };console.log(+a); // 1console.log(a.valueOf()); // (the same object)console.log(a.toString()); // "[object Object]"

通常,符号用于在不能与随机属性名称冲突的对象上提供唯一属性,例如:

let a = Symbol();let foo = { [a]: 1 };foo[a]; // 1

除了从某处获取符号之外,没有任何方法可以访问值(尽管您可以通过调用来获取对象的所有符号

Object.getOwnPropertySymbols
,因此它们不能用于实现私有属性或方法)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/411457.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号