我注意到@@
用于fewpages关于新的ES6功能,但我不知道它究竟意味着什么(无论它是实际的语法还是某种文档约定)。谷歌很难。有人可以解释吗?@@(“at at”)在ES6 JavaScript中的含义是什么?
回答
@@
描述了所谓的着名符号。 (请注意,它实际上不是有效的语法在JS。)根据ES6/ES2015 specification:
著名符号内置明确可以本规范的算法引用符号值。它们通常用作其值作为规范算法的扩展点的属性的键。除非另有说明,否则所有代码领域(8.2)共享众所周知的符号值。
代码区域引用JavaScript环境的不同实例。例如,根文档的代码领域将与在中运行的JavaScript代码领域不同。
当一个对象来自什么样的代码领域时,它试图使用instanceof
来确定一个对象是否是一个数组(如果它来自另一个框架,它将不起作用)。为避免这些类型的问题被符号弹出,它们被共享,因此无论对象来自何处,对(比如说)@@toString
的引用都将起作用。
其中一些通过Symbol
构造函数直接暴露,例如@@toPrimitive
暴露为Symbol.toPrimitive
。可用于覆盖试图将对象转换为原始值时所产生的值,例如:
let a = { [Symbol.toPrimitive]:() => 1 };
console.log(+a); // 1
console.log(a.valueOf()); // (the same object)
console.log(a.toString()); // "[object Object]"
一般来说,符号被用于提供在物体上的独特性质,这不能以随机属性碰撞名称,例如:
let a = Symbol();
let foo = { [a]: 1 };
foo[a]; // 1
有没有办法进入除非获得从某处符号价值(尽管你可以通过调用Object.getOwnPropertySymbols
获取对象的所有符号,所以它们不能被用来实现私有属性或方法)。
1:请参阅this es-discuss topic了解有关不同名称的一些讨论。
注意,这不能修复跨帧'instanceof'。一个更好的例子是跨帧可迭代数组。 – Bergi
@Bergi:我一直试图提供一个跨框架问题的例子,这并不是我的意思 - 也许我会试着重新说一遍。 –
- 1. Perl中'at'(@@)的含义是什么?
- 2. x86-64 AT&T程序集中地址的含义是什么?
- 3. Ionic2 - 关于导入指令的At symbol @的含义是什么?
- 4. 什么是/ [Cc] at/in perl?
- 5. VBA Excel中@(At)的用法是什么?
- 6. AT命令中的*是什么?
- 7. AT&T语法中(%eax)的含义?
- 8. Stuck at什么是中位数UVa 10107
- 9. 在命令:AT + QASP,AT + EASP
- 10. Javascript error at start
- 11. TemplateDoesNotExist at/at templates/index.html
- 12. 双“at”(@@)符号在Makefile中做什么?
- 13. :: at函数名是什么意思?
- 14. port.WriteLine(“AT”);和port.Write(“AT”+ Environment.NewLine);
- 15. clojure overtone(at command)
- 16. 为什么我会在“NoReverseMatch at /”错误?
- 17. org.json.JSONException在at org.json.JSON.typeMismatch
- 18. $$在JavaScript中的含义是什么?
- 19. “=>”在JavaScript中的含义是什么?
- 20. @cc_on在JavaScript中的含义是什么?
- 21. $(document.body)在javascript中的含义是什么?
- 22. '</'在JavaScript中的含义是什么?
- 23. _(variable_name)在javascript中的含义是什么?
- 24. @const在JavaScript中的含义是什么?
- 25. $('')在JavaScript中的含义是什么?
- 26. “rot13”在Javascript中的含义是什么?
- 27. 在AT&T汇编语言中,“。=”是指什么?
- 28. 在Python中,'<function at ...>'是什么意思?
- 29. “Created At和Updated At”数据库属性的定义
- 30. Rundeck的@ option.message @示例中的at-signs是什么意思?
我们是否可以同意知名符号现在更为人熟知? :) – towerofnix