我注意到@@
用於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